简体   繁体   English

计算每个用户输入的平均值

[英]Calculate average of user input using for each

Hi Im new to java and trying to do some exercises to familiarize myself with it. 嗨,我是java的新手,并尝试做一些练习来熟悉它。 I am trying to calculate the sum and average of the user input numbers using a for each or enhanced for loop. 我正在尝试使用for或增强的for循环来计算用户输入数字的总和和平均值。 What i have done is to store the numbers in an array. 我所做的是将数字存储在数组中。 Can you please check if my code is correct. 您能检查我的代码是否正确。

Scanner scanner = new Scanner(System.in);

double inputNum;
double sum= 0;
int counter;

System.out.println("How many entries would you like input");
int entry = scanner.nextInt();

for (counter = 0; counter< entry; counter++){

    double [] numbers = new double[entry]; 
    System.out.println("Please input number " + (counter +1));
    numbers[counter] = scanner.nextDouble();

    for (double x : numbers[counter]) {
        x += sum;
    }

    System.out.println("The total sum is: " + sum);
    double average = sum/entry;
    System.out.println("The total average is: " + average);
}

You don't need the inner loop. 您不需要内部循环。 You can add each input to the sum after you store it in the array. 将每个输入存储在数组中之后,可以将其添加到总和中。

In addition, you should allocate the array once outside the outer loop, and not in each iteration. 另外,应该在外部循环之外而不是在每次迭代中分配一次数组。

double [] numbers = new double[entry];
for (counter = 0; counter< entry; counter++){       
    System.out.println("Please input number " + (counter +1));
    numbers[counter] = scanner.nextDouble();
    sum+= numbers[counter];
}
System.out.println("The total sum is: " + sum);
double average = sum/entry;
System.out.println("The total average is: " + average);

Put the sum and average logic outside the loop. 将求和和平均逻辑放在循环之外。 This should work: 这应该工作:

double [] numbers = new double[entry]; 
for (counter = 0; counter< entry; counter++){
  System.out.println("Please input number " + (counter +1));
  numbers[counter] = scanner.nextDouble();       
  sum += numbers[counter];
}

System.out.println("The total sum is: " + sum);
double average = sum/entry;
System.out.println("The total average is: " + average);

You can't use a for-each with a scanner. 您不能将for-each与扫描仪一起使用。 Also there is no need your you to be storing anything. 同样,您也不需要存储任何东西。 Just keep track of the sum. 只要跟踪总和。

Scanner scanner = new Scanner(System.in);

System.out.println("How many entries would you like input?");
int numEntries = scanner.nextInt();

double sum = 0;
for (counter = 1; counter <= numEntries; counter++) {
    System.out.println("Please input number " + counter + ": ");
    sum += scanner.nextDouble();
}
System.out.println("The total sum is: " + sum);
System.out.println("The average is: " + sum / numEntries);

Same code, with average outside the loop and the useless array removed: 相同的代码,平均在循环外,并且删除了无用的数组:

Scanner scanner = new Scanner(System.in);

double sum = 0;

System.out.println("How many entries would you like input");
int entry = scanner.nextInt();

for (int counter = 1; counter <= entry; counter++) {
    System.out.println("Please input number " + counter);
    sum += scanner.nextDouble();
}

System.out.println("The total sum is: " + sum);
double average = sum / entry;
System.out.println("The total average is: " + average);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM