循环java测试分数统计
这就是任务:
- 显示使用信息“请输入0-100之间的测试分数
- 输入999以完成。"
- 接受0-100范围内的测试分数。如果数字超出范围,则显示消息“无效测试分数”,忽略该输入并继续收集值
- 当用户输入数字999时,停止收集测试分数
- 输入所有值后,显示输入的分数数、最低分数、最高分数和平均值李>
输入的示例输出:57 -2 98 13 85 77 999
这是我的解决方案:
import java.util.Scanner;
public class TestScoreStatistics {
public static void main(String[] args)
{
int max=0;
int min=999;
int avg=0;
int count=0;
int sum=0;
int num;
Scanner scan=new Scanner(System.in);
System.out.println("Please input test scores with values between 0-100.\nEnter 999 to finish.");
num=scan.nextInt();
int temp=num;
do
{
if(num==999)
System.exit(0);
if(num>=0 && num<=100)
{
count++;
sum+=num;
if(num>max )
max=num;
if(num<min)
min=num;
}
} while((num=scan.nextInt())!=999);
System.out.println("Test Statistics:");
System.out.println("Number of tests: "+count);
System.out.println("Lowest: "+min);
System.out.println("Highest: "+max);;
System.out.printf("Average: " + sum/count);
}
}
但当输入为999时,输出应为 测试统计: 测试次数:0 最低:0 最高:0 平均:0 我该怎么做
# 1 楼答案
这就是我要做的。如果是作为编程类的辅助,我建议用集合等代码替换行(您可以在stackoverflow上找到)
# 2 楼答案
你可能想考虑改变:
致:
当您的第一个输入为“
999
”时,它将导致退出do-while
循环而不是完成程序。您需要解决的问题是在此处除以0:您可以将其更改为以下内容:
或者类似于您需要执行的操作,而不是在那里除以0