2017-04-26 2 views
2

Wie kann ich die Benutzereingaben an eine Methode übergeben und dann diese Methode eine ganze Zahl zurückgeben oder double? Ich bekomme immer einen Fehler, dass ich eine ganze Zahl zurückgeben muss, aber ich verstehe nicht wie.Übergeben Sie Benutzereingabearray an Methode und geben Sie eine ganze Zahl zurück?

import java.util.Scanner; 

public class Q7_8 { 

    public static void main(String [] args){ 
     Scanner sc = new Scanner(System.in); 
     System.out.println("Enter 10 integers:"); 
     int[] a = new int[10]; 

     for(int i =0; i < a.length; i++){ 
      a[i] = sc.nextInt(); 
     } 
     average(a); 
    } 
    public static int average(int [] array){ 
     int sum =0; 
     for(int i = 0; i < array.length; i++){ 
      sum += array[i]; 
      int finalAvr = array[i] /10; 
     } 
    } 
    public static double average(double [] array){ 
     int sum =0; 
     for(int i = 0; i < array.length; i++){ 
      sum += array[i]; 
      double finalAvr = array[i] /10; 
     } 
    } 
} 
+0

für Ihre erste Methode einfach 'return sum;' nach der for-Schleife. Vergessen Sie auch nicht, den zurückgegebenen Wert zu speichern oder in der Konsole auszudrucken, wenn dies Ihre Absicht ist. Für Ihre zweite Methode ändern Sie den Variablentyp 'sum' in' double' und wieder 'return sum'. –

Antwort

-1
 public static void main(String [] args){ 
      Scanner sc = new Scanner(System.in); 
      System.out.println("Enter 10 integers:"); 
      int[] a = new int[10]; 

      for(int i =0; i < a.length; i++){ 
       a[i] = sc.nextInt(); 
      } 
      double avg = average(a); //if average return something, then you must assign the value return somwhere. 
      System.out.println(avg); // print the valued return - avg 
     } 
     public static int average(int [] array){ 
      int sum =0; 
      for(int i = 0; i < array.length; i++){ 
       sum += array[i]; 
      } 
      return (int)(sum/array.length); //must return if you specify return type 
     } 
     public static double average(double [] array){ 
      double sum =0; 
      for(int i = 0; i < array.length; i++){ 
       sum += array[i]; 
      } 
      return sum/array.length; //must return if you specify return type 
     } 

Referenzen: https://docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html

+0

'Average' Methode für Integer wird falschen Wert zurückgeben, und' Average' für Double wird nie aufgerufen. – MaxZoom

+0

Danke @MaxZoom für Hinweise! Ich habe meine Antwort aktualisiert. – Smit

0

gewarnt ich eher ein C bin ++ Kerl, aber es sollte noch ähnlich sein:

public static int average(int [] array){ 
    int sum =0; 
    for(int i = 0; i < array.length; i++){ 
     sum += array[i]; 
     int finalAvr = array[i] /10; 
    } 
    return sum/10; // you need to return the average you calculated 
} 

Die gleiche Sache mit dem Durchschnitt des Doppels. Sie vermissen diese Zeile:

return sum/10.0; 
Verwandte Themen