编写一个程序,读入个数不确定的考试分数,并且判断有多少个分数是大于或等于平均分,多少个分数是低于平均分的。输入一个负数表示输入的结束。假设最高分为100。
提示用户输入学生成绩,输入一个负数表示结束;将用户输入的学生成绩存入数组scores中,定义sum用来求成绩总和,首先判断用户输入的分数是否合法(即是否超过最高分100),若超过则提示输入有误,若合法则加入sum。sum / i 求得平均数ave,定义high和low分别计数大于等于平均分和低于平均分的人数,将数组中的成绩与平均分比较,大于或等于则high++,低于则low++。
代码如下:
public class AnalyzeScores {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.println("请输入学生成绩,以负数结束:");
double[] scores = new double[1000];
double sum = 0;
int i = 0;
for (i = 0;i <= scores.length;i++){
scores[i] = input.nextDouble();
if(scores[i] > 100){
System.out.printf("第%d个分数输入有误!",i+1);
return;
}
else if (scores[i] >= 0)
sum = sum + scores[i];
else
break;
}
double ave = sum / i;
int high = 0;
int low = 0;
for (int j = 0;j < i;j++){
if (scores[j] < ave)
low++;
else
high++;
}
System.out.println("高于或等于平均分的有: " + high + " 个,低于平均分的有: " + low + " 个" );
}
}
运行结果: