2014-01-19 10 views
0

Вот моя полуготовности программа:Передача массива в качестве параметра метода

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) 
} 
} 

я прокомментировал проблемную часть. Я не понимаю, почему он не принимает в качестве параметров. Я пробовал все, но он все равно не примет массивы. Что я могу сделать, чтобы исправить это или хотя бы скомпрометировать его и сделать это по-другому?

+0

Пропустить массив не какой-либо элемент указанного индекса –

ответ

0

НУ должны пройти весь объекты

vavediMasiv(col, cenaE, cenaD); 
3

Вы Попутно Int и двойные значения. Для того, чтобы передать его ИНТ и двойные массивы вам нужно сделать, это:

vavediMasiv(col, cenaE, cenaD); 

Например, здесь вы передаете ей м + 1 элемент массива cenaD, а не сам массив.

cenaD[m+1] 
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); 
0

можно передать значения в массиве, а не в самом массиве. Вот почему вы получаете ошибку int cant be converted to int[], потому что col[m +1] - это значение int в массиве col. То же самое с двумя другими массивами.

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"); 
} 
0

Вы пытаетесь передать (intdoubledouble) параметры метода в этой подписи говорится, что он принимает массивы (intdoubledouble).

Глядя на исходный код, вы просто должны изменить вызов

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"); 
    } 

Извините, но я не могу понять ваши методы Logi чтобы дать лучший снимок.

BR.

0

Ваш метод vavediMasiv (int col [], double cenaE [], double cenaD []) ожидает три аргумента типа int array, double array и double array. Пока вы передаете int, double и double в качестве аргументов. Вот почему он дает ошибку.

Смежные вопросы