2017-04-26 6 views
2

ユーザー入力をメソッドに渡して、そのメソッドを整数または倍精度に戻すにはどうすればよいですか?私は整数を返さなければならないというエラーが出てきますが、どうやって理解できません。ユーザー入力配列をメソッドに渡して整数を返しますか?

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

最初の方法では、単にfor returnの後に 'return sum;'を置きます。また、返された値を格納するか、それがあなたの意図であればコンソールに出力することを忘れないでください。あなたの2番目のメソッドは 'sum'変数の型を' double'に変更し、 'return sum'を再度変更します。 –

答えて

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

参考文献: https://docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html

+0

integerの 'Average'メソッドは間違った値を返し、doubleの' average'は決して呼び出されません。 – MaxZoom

+0

ありがとう@MaxZoomを指摘してください!私は私の答えを更新しました。 – Smit

0

は、私はC++の男のより多くのだと警告されたが、それはまだようになります。二重の平均で

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 
} 

同じこと。この行がありません:

return sum/10.0; 
関連する問題