[英]Take the average of elements in array
因此,我明天准備進行測驗,並且正在使用數組,要求用戶要輸入多少個測試,然后要求每個測試得分。 我遇到的麻煩是對測試進行匯總,而不能匯總全部,請幫助我
import java.util.Scanner;
public class Arrays {
public static void main(String args []){
int numOfElements;
Scanner input = new Scanner(System.in) ;
System.out.println("How many tests are you going to input? ");
numOfElements = input.nextInt();
double array[] = new double [numOfElements];
for (int i=0; i<array.length; i++){
System.out.println("Enter the test # " + (i+1) + ": ");
array[i] = input.nextDouble();
}
for (int i = 0; i<array.length; i++ )
{
System.out.print("Test #"+(i+1)+"= "+array[i] + " pts\n");
}
for (int m= 0; m<array.length; m++)
{ //average value
double sum = 0;
sum = sum + array[m]; //get the sum\
double average = sum / array.length; //get the average value
//print out the sum of elements in an array
System.out.print("Your total points are: "+sum);
//print out the average grade
System.out.println("Your grades is "+average +"%");
}
}
您的問題在這里:
double sum = 0
這會在每次循環迭代期間重置您的計數器!
因此,對於初學者來說,您必須將該語句移到for循環的前面 ! “平均”也一樣!
您應該在循環中總結分數。 之后 ,您將打印結果。
double sum = 0;
for (int m= 0; m<array.length; m++)
{ //average value
sum = sum + array[m]; //get the sum\
}
double average = sum / array.length; //get the average value
//print out the sum of elements in an array
System.out.print("Your total points are: "+sum);
//print out the average grade
System.out.println("Your grades is "+average +"%");
每次迭代都會重置double sum
和double average
,將其聲明為for循環外的局部變量,並在迭代完成后打印平均值和求和
double sum = 0;
for (int m = 0; m < array.length; m++) {
sum = sum + array[m];
}
System.out.print("Your total points are: " + sum);
System.out.println("Your grades is " + sum / array.length + "%");
在Java8 +中
double array[] = new double[numOfElements];
DoubleSummaryStatistics dss = Arrays.stream(array).summaryStatistics();
System.out.println("average " + dss.getAverage());
System.out.println("sum " + dss.getSum());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.