2015-04-25 3 views
0

Я пытаюсь принимать значения из отдельных массивов и выполнять математику деления. Я создал метод для выполнения разделения, но я продолжаю получать ошибку «плохой операнд ...». Я искал и искал, но не могу найти разрешение. Мне нужно иметь возможность принимать значения из tripMiles и делить их на значения из галлонов.Разделение значений из одного массива на значения из отдельного массива

import java.util.Scanner; 

public class Week6Challenge {  
    public static void main(String[] args) { 
     Scanner scan = new Scanner (System.in); 
     int count = 0; 
     //double miles = 0, gallons = 0; 
     //Arrays 
     String[] tripName; 
     tripName = new String[11]; 
     double[] tripMiles; 
     tripMiles = new double[11]; 
     double[] tripMPG; 
     tripMPG = new double [11]; 
     double[] gallons; 
     gallons = new double [11]; 

     //double miles = 0, gallons = 0; 

     while (count <= 9){//start while 
      System.out.println("Enter a description of this trip"); 
      tripName[count] = scan.next(); 

      System.out.println("How many miles did you drive?"); 
      tripMiles[count] = scan.nextDouble(); 

      System.out.println("How many gallons of gas did you use on this trip"); 
      gallons[count] = scan.nextDouble(); 
      count++; 
     }//end while 

     tripMPG[count] = answer(tripMiles, gallons); 

     System.out.println("Trip Name \t Miles Traveled \t MPG"); 
     int k = 0; 
     for(k = 0; k < 10; k++){ 
      System.out.println(tripName[k]+ "\t\t" + tripMiles[k] + "\t\t\t" + tripMPG[k]); 
     } 
    } 
    public static double answer(double[] num1, double[] num2){ 
     return (num1/num2); 
    } 
} 
+0

Опубликуйте точное и полное сообщение об ошибке и сообщите нам, к какой строке он относится, вместо того, чтобы заставлять нас угадывать. Как вы думаете, что делать с разделом [3, 42] [2, 2, 2]? –

ответ

1

Вы пытаетесь разделить два массива, как:

return (num1/num2); 

который не действует.

Вместо этого, если вам нужна длина или сумма двух массивов, а затем разделите, вы можете суммировать все элементы и затем разделить эти два значения.

0

Вы не можете разделить массив как этот (num1/num2)

фрагмент кода одного метода, как сделать разделение Arraya

public static double answer(double[] num1, double[] num2){ 
    //assumimg both array is of equal length 
    for (int i=0;i<num1.length;i++){ 
double result = num1[i]/num2[i]; 
} 

    } 
0

Как уже упоминалось, вы не можете разделить массивы друг с другом, но их элементов.

Измените функцию ответа так вместо двух массивов двойной она занимает два двухместных номера и возвращает результат:

//num1 & num2 are double, not array 
public static double answer(double num1, double num2){ 
    return (num1/num2); 
} 

Удалить tripMPG[count] = answer(tripMiles, gallons); справа после цикла в то время и вместо того, чтобы добавить следующую строку в конце вашего в то время как петля перед count++;:

tripMPG[count] = answer(tripMiles[count], gallons[count]); 

Так ваше время должно выглядеть следующим образом:

while (count <= 9){//start while 
    System.out.println("Enter a description of this trip"); 
    tripName[count] = scan.next(); 

    System.out.println("How many miles did you drive?"); 
    tripMiles[count] = scan.nextDouble(); 

    System.out.println("How many gallons of gas did you use on this trip"); 
    gallons[count] = scan.nextDouble(); 

    tripMPG[count] = answer(tripMiles[count], gallons[count]); 
    count++; 
}//end while 
Смежные вопросы