Java统计人名和成绩 并且不指定有几个 计算平均数 智能放缩人数
时间: 2024-06-08 21:09:58 浏览: 10
可以使用Java的集合框架来实现这个功能。可以定义一个HashMap,其中键为人名,值为对应的成绩。然后使用Scanner从控制台读取输入,并将输入存储到HashMap中。接着可以遍历HashMap,计算总成绩和人数,最后计算平均数并输出。
以下是示例代码:
```java
import java.util.HashMap;
import java.util.Scanner;
public class ScoreStatistics {
public static void main(String[] args) {
HashMap<String, Integer> scores = new HashMap<>();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("请输入姓名和成绩(以空格分隔,输入exit结束):");
String input = scanner.nextLine();
if (input.equals("exit")) break;
String[] tokens = input.split(" ");
if (tokens.length != 2) {
System.out.println("输入格式错误,请重新输入");
continue;
}
String name = tokens[0];
int score;
try {
score = Integer.parseInt(tokens[1]);
} catch (NumberFormatException e) {
System.out.println("成绩格式错误,请重新输入");
continue;
}
scores.put(name, score);
}
int totalScore = 0;
int count = 0;
for (int score : scores.values()) {
totalScore += score;
count++;
}
if (count == 0) {
System.out.println("没有输入任何数据");
} else {
double averageScore = (double) totalScore / count;
System.out.printf("共%d个人,平均成绩为%.2f\n", count, averageScore);
}
}
}
```
在这个代码中,我们使用了Scanner来读取控制台输入。每次输入包含姓名和成绩,以空格分隔。如果输入格式错误或者成绩格式错误,程序会提示用户重新输入。如果输入exit,则程序退出输入循环。
接着,我们遍历HashMap,计算总成绩和人数。如果没有输入任何数据,则输出相应提示。否则,计算平均数并输出。注意,需要将总成绩转换为double类型,以便计算平均数时进行浮点数除法。输出时使用了printf方法,以便格式化输出结果。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![text/x-java](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)