Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数组作为参数传递给方法_Java_Arrays - Fatal编程技术网

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数组的某个元素不是指定索引的某个元素