2016-04-15 117 views
-4

我想使用数组计算平均数。我希望程序要求分数的等级,然后我想把分数编号。计算阵列中的平均数

我想要得到double的平均输出。

这是到目前为止我的代码:

public class Average { 

    public static void main(String[] args) 
    { 
     //int n = MyConsole.readInt("Enter number of grades: "); 

     int a = MyConsole.readInt("Enter grade 1: "); 
     int b = MyConsole.readInt("Enter grade 2: "); 
     int c = MyConsole.readInt("Enter grade 3: "); 

     int[] numbers = new int[]{a,b,c}; 
     numbers[0] = a; 
     numbers[1] = b; 
     numbers[2] = c; 


     int sum = 0; 

     for(int i=0; i < numbers.length ; i++) 
       sum = sum + numbers[i]; 

     double average = sum/numbers.length; 

     System.out.println("Average value of array elements is : " + average); 
    } 
} 
+2

'号码[0] = A;数字[0] = b;数字[0] = c;'这是两件事:***错误***,因为你总是写入相同的索引和***过时***,因为你已经用'a正确地初始化了你的数组','b'和'c'。所以你可以删除这些行。 – Tom

+3

你想要什么?能够以任何级别做到这一点? – dquijada

+0

其实对我来说,你所要求的东西还不太清楚。你能证明一个样本输入和预期的输出吗? – SomeJavaGuy

回答

5

不知道你MyConsole类是干什么的,但我猜是Scanner

您的代码改进将是这样的:

public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); 

    System.out.print("Enter number of grades: "); 
    int n = sc.nextInt(); 

    int sum = 0; 

    for (int i = 0; i < n; i++) { 
     System.out.print("Enter grade "+ (i + 1) + ": "); 
     int a = sc.nextInt(); 
     sum += a; 
    } 

    double average = sum/n; 

    System.out.println("Average value of array elements is : " + average); 
} 

OUTPUT(2级):

Enter number of grades: 2 
Enter grade 1: 1 
Enter grade 2: 5 
Average value of array elements is : 3.0 

输出(5级):

Enter number of grades: 5 
Enter grade 1: 10 
Enter grade 2: 20 
Enter grade 3: 30 
Enter grade 4: 10 
Enter grade 5: 50 
Average value of array elements is : 24.0 

注:

double average = sum/n; 

执行一个int师,所以你不会有任何小数!用你自己的类

Enter number of grades: 2 
Enter grade 1: 1 
Enter grade 2: 4 
Average value of array elements is : 2.5 

GUESS:我想提出一个快速转换:

double average = sum/(double) n; 

有了新的输出

public static void main(String[] args) { 
    int sum = 0; 

    int n = MyConsole.readInt("Enter number of grades: "); 

    for (int i = 0; i < n; i++) { 
     int a = MyConsole.readInt("Enter grade "+ (i + 1) + ": "); 
     sum += a; 
    } 

    double average = sum/n; 

    System.out.println("Average value of array elements is : " + average); 
1

谢谢! 对不起的解释。 这是我的第一个问题

这一点,编辑后的代码:

import java.util.Scanner; 

public class Average { 

    public static void main(String[] args) 
    { 
     Scanner sc = new Scanner(System.in); 
     System.out.println("Enter number of grades: "); 
     int n = sc.nextInt(); 
     int sum = 0; 

     int[] numbers = new int[n]; 

     for(int i=0; i < numbers.length ; i++) 
     { 
      System.out.println("Enter grade " + (i + 1) + " :"); 
      int a = sc.nextInt(); 
      sum = sum + a; 
     } 

     double average = sum/(double) n; 

     System.out.println("Average value of array elements is : " + average); 
     sc.close(); 
    } 
} 
+0

请注意,您可以使用'print'而不是'println'来写入与问题相同的输入 –

0

计划计算平均使用数组:

公共类Inter1 {//类的名称,

public static void main(String[] args) {//main method 

int number[]={40,56,23,56,87,23,78}; //declaring the int array 
int sum=0; 
for (int s:number){ //for each 
    sum +=s; 
} 
int ave=sum/number.length; //to get the average 
    System.out.println("the average is "+ave); //out put 
}  
} 
0
public class Inter1 { //name of the class 

    public static void main(String[] args) { //main method 

     System.out.println("=============================="); 

     int num[]={34,56,78,78,34,2,33,99,100,56}; //int array 
     int total=0; 
     for (int i=0;i<num.length;i++){ //for loop 
      total+=num[i]; 
     } 

     int avrage1=total/num.length; //output 
       System.out.println("The average is "+avrage1); 

    }  
} 
0
package inter1; 

import static java.time.Clock.system; import java.util.Scanner;

公共类Inter1 {

public static void main(String[] args) { 
Scanner in = new Scanner (System.in); 
int total=0; 
    System.out.println("Enter how many number that do u wanna enter ?? "); 
    int num= in.nextInt(); 
    int numbers[]=new int[num]; 
    for (int i=0;i<numbers.length;i++){ 
     System.out.println(i+1+":"+"enter the your numbers ? "); 
     numbers[i]=in.nextInt(); 
    } 
    for (int i=0;i<numbers.length;i++){ 
     total+=numbers[i]; 
    } 
    int average =total/numbers.length; 
    System.out.println("the average is "+average); 

}  
}