2017-04-26 63 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

你的第一个方法只是'返回sum;'在for循环之后。另外,如果这是您的意图,请不要忘记存储返回的值或将其打印到控制台。对于第二种方法,将'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

整数的“平均值”方法将返回错误的值,而“平均值”将不会被调用。 – 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; 
相关问题