Java 将数组作为参数传递给方法
这是我完成了一半的计划:Java 将数组作为参数传递给方法,java,arrays,Java,Arrays,这是我完成了一半的计划: import java.util.*; public class Sclad { public static void vavediMasiv(int col[], double cenaE[], double cenaD[]){ Scanner sc = new Scanner(System.in); for (int i = 1; i < col.length; i++) { System.out.println("
import java.util.*;
public class Sclad {
public static void vavediMasiv(int col[], double cenaE[], double cenaD[]){
Scanner sc = new Scanner(System.in);
for (int i = 1; i < col.length; i++)
{
System.out.println("Molq vuvedete kolichestvoto ot produkt nomer " + i);
col[i] = sc.nextInt();
System.out.println("Kolichestvoto na produkta zadadeno kato: " + col[i]);
}
for (int i = 1; i < cenaE.length; i++)
{
System.out.println("Molq vuvedete cenata na edro na produkt nomer " + i);
cenaE[i] = sc.nextDouble();
System.out.println("Cenata na produkta na edro zadadeno kato: " + cenaE[i]);
}
for (int i = 1; i < cenaD.length; i++)
{
System.out.println("Molq vuvedete cenata na drebno na produkt " + i);
cenaD[i] = sc.nextDouble();
System.out.println("Cenata na produkta na drebno zadadeno kato: " + cenaD[i]);
}
}
public static void calcPechalba(){
for (int i = 1; i < col.length; i++)
System.out.println("KUR");
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("Vavedete broi na stokite prisustvashti v sklada...");
int m = sc.nextInt();
System.out.println("Vie izbrahte " + m + " za kolichestvo na stokite.");
int col[] = new int[m+1];
double cenaE[] = new double[m+1];
double cenaD[] = new double[m+1];
vavediMasiv(col[m+1], cenaE[m+1], cenaD[m+1]); // I GET AN ERROR HERE SAYING The method vavediMasiv(int[], double[], double[]) in the type Sclad is not applicable for the arguments (int, double, double)
}
}
import java.util.*;
公共类Sclad{
公共静态无效vavediMasiv(整数列[],双cenaE[],双cenaD[]){
扫描仪sc=新的扫描仪(System.in);
for(int i=1;i
我已经评论了有问题的部分。我不明白为什么它不接受作为参数。我已经尝试了一切,但它仍然不接受阵列。我能做些什么来解决这个问题,或者至少折衷一下,用另一种方式解决这个问题?你应该传递整个对象
vavediMasiv(col, cenaE, cenaD);
你应该把所有的东西都传过去
vavediMasiv(col, cenaE, cenaD);
您正在传递int和double值。要将int和double数组传递给它,需要执行以下操作:
vavediMasiv(col, cenaE, cenaD);
例如,这里传递的是cenaD数组的m+1元素,而不是数组本身
cenaD[m+1]
您正在传递int和double值。要将int和double数组传递给它,需要执行以下操作:
vavediMasiv(col, cenaE, cenaD);
例如,这里传递的是cenaD数组的m+1元素,而不是数组本身
cenaD[m+1]
看。。。你已经定义了
public static void vavediMasiv(int col[], double cenaE[], double cenaD[]) // expecting and accepting whole arrays as arguments.
您正在使用:
vavediMasiv(col[m+1], cenaE[m+1], cenaD[m+1]); // you are passing individual values of arrays instead of whole array.
您必须使用:
vavediMasiv(col, cenaE, cenaD);
看。。。你已经定义了
public static void vavediMasiv(int col[], double cenaE[], double cenaD[]) // expecting and accepting whole arrays as arguments.
您正在使用:
vavediMasiv(col[m+1], cenaE[m+1], cenaD[m+1]); // you are passing individual values of arrays instead of whole array.
您必须使用:
vavediMasiv(col, cenaE, cenaD);
您传递的是数组中的值,而不是实际数组中的值。这就是为什么不能将错误
int转换为int[]
,因为col[m+1]
是col
数组中的int
值。与其他两个阵列相同
vavediMasiv(col[m+1], cenaE[m+1], cenaD[m+1])
以上都是数组中的值。你想要
vavediMasiv(col, cenaE, cenaD);
您可能还希望向该方法传递一个数组,以消除此错误
public static void calcPechalba(int[] col){ <------
for (int i = 1; i < col.length; i++)
System.out.println("KUR");
}
public static void calcPechalba(int[]col){您正在传递数组中的值,而不是实际数组中的值。这就是为什么您得到的错误int不能转换为int[]
,因为col[m+1]
是col
数组中的int
值。与其他两个数组相同
vavediMasiv(col[m+1], cenaE[m+1], cenaD[m+1])
以上都是数组中的值。是否要
vavediMasiv(col, cenaE, cenaD);
您可能还希望向该方法传递一个数组,以消除此错误
public static void calcPechalba(int[] col){ <------
for (int i = 1; i < col.length; i++)
System.out.println("KUR");
}
publicstaticvoidcalcpechalba(int[]col){您试图将(int
double
double
)参数传递给一个方法,该方法的签名表示它接受(int
double
double
)数组
查看源代码,您只需更改
vavediMasiv(col[m+1], cenaE[m+1], cenaD[m+1]);
呼吁:
vavediMasiv(col, cenaE, cenaD);
您还应该注意,由于没有局部变量col
,下面的方法不会编译:
public static void calcPechalba(){
for (int i = 1; i < col.length; i++)
System.out.println("KUR");
}
public static void calcpechallba(){
for(int i=1;i
很抱歉,我无法理解您的方法逻辑流程,无法提供更好的拍摄效果
BR.您试图将(int
double
double
)参数传递给一个方法,该方法的签名表示它接受(int
double
)数组
查看源代码,您只需更改
vavediMasiv(col[m+1], cenaE[m+1], cenaD[m+1]);
呼吁:
vavediMasiv(col, cenaE, cenaD);
您还应该注意,由于没有局部变量col,下面的方法不会编译:
public static void calcPechalba(){
for (int i = 1; i < col.length; i++)
System.out.println("KUR");
}
public static void calcpechallba(){
for(int i=1;i
很抱歉,我无法理解您的方法逻辑流程,无法提供更好的拍摄效果
BR.您的方法vavediMasiv(int-col[],double-cenaE[],double-cenaD[])需要三个int-array、double-array和double-array类型的参数。当您将int、double和double作为参数传递时,这就是它给出错误的原因。您的方法vavediMasiv(int-col[],double-cenaE[],double-cenaD[])需要三个int-array、double-array和double-array类型的参数。当您将int、double和double作为参数传递时,这就是它给出错误的原因。传递数组不是指定indexPass数组的某个元素不是指定索引的某个元素