import java.util.Scanner;
public class ha {
public static void main(String[] args) {
System.out.print("Enter a new score:");
Scanner input=new Scanner(System.in);
int[]arr=new int[1];
System.out.println("Enter scores:");
double average=0;double sum=0;int count=0;int m=0;int n=0;
for(int i=1;; i++)
{
arr[i]=input.nextInt();
sum+=arr[i];
average=sum/i;
if(arr[i]<0)
break;
count=i;
}
System.out.print("count is"+count);
System.out.println();
System.out.print("Average is"+average);
for(int i=1;; i++)
{
if(arr[i]>=average)
m++;
else
n++;
}
System.out.print("Number of scores above or equal to the average:"+m);
System.out.println();
System.out.print("Number of scores below the average:"+n);
}
}
你的第二个for循环没有结束条件,成了一个死循环了
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//存放分数
List<Double> scoreList = new ArrayList<>();
//累计分数
Double totalScore = 0.0;
//循环标记,当输入负数时将tag赋值false
boolean tag = true;
while (tag) {
System.out.println("请输入成绩");
if( scanner.hasNextLine()) {
Double s = scanner.nextDouble();
if( s.compareTo(new Double("0")) < 1) {
tag = false;
}else {
scoreList.add(s);
totalScore += s;
}
}
}
//计算
Double avgScore = totalScore / scoreList.size();
//高于平均分的人数统计
int g = 0;
//低于平均分的人数统计
int l = 0;
for( Double score :scoreList) {
if( score.compareTo( avgScore) >= 0) {
g++;
}else {
l++;
}
}
System.out.println("总分为:" + totalScore + " 平均分为:" + avgScore + " 高于平均分人数:" + g + " 低于平均分人数:" + l);
}
如有帮助,请采纳!!!!