gpt4 book ai didi

java - 获取用户输入数组中所有值的平均值和总和?

转载 作者:行者123 更新时间:2023-11-30 08:29:17 25 4
gpt4 key购买 nike

我需要编写一个应用程序,它可以在一个数组中存储 10 000 个用户输入的值,并且可以返回所有值的总和和所有值的平均值。如果用户写入数字“0”,则必须停止输入。需要满足一些条件:

  1. 需要将值存储在数组中
  2. 用户输入数据必须在 while 循环中
  3. 分析(可以说是数学)必须在用户输入完成后进行。
  4. 应用程序不允许循环任何空元素。

这是我今天在类里面布置的额外作业。

到目前为止我已经写了这个:

import java.util.Scanner;

public class Ovning_54 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] list;
list = new int[10000];
int sum = 0;
int avr = 0;
int x = 0;
int number;

System.out.print("Add number " + (x + 1) + ": ");
number = input.nextInt();

while (x <= list.length && (number != 0 || x == 0)) {
list[x] = number;
x++;
System.out.print("Add number " + (x + 1) + ": ");
number = input.nextInt();
}

for (int i = 0; i < x; i++) {
sum += list[i];
avr = sum / x;
}

System.out.println("The sum of all values are: " + sum);
System.out.println("The average value of the numbers are: " + avr);
}

}

我想我已经解决了!似乎运行正常,我从来没有收到任何错误消息。我仍然想知道这是否违反了条件#1。如果没有,是否有解决办法?

最佳答案

改变

x = list.length;break;

这将保留您的 x,即他们输入的条目数。或者,您可以将另一个变量设置为 x,然后将 x 设置为 list.length。我知道有些老师告诉学生不要使用 break(我还是不明白)

然后你的 for 循环变成:

for(int i = 0 ; i < x ; i++)

然后在 for 循环之后,你的平均值是 sum/x。

编辑:再看一遍后,当您计算平均值时,x 似乎太大了 1。您可以通过在计算中使用 (x-1)(不太自然)或在 while 循环中将中断条件放在 x 递增之前(更自然)来解决此问题。

关于java - 获取用户输入数组中所有值的平均值和总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19521788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com