【发布时间】:2019-05-15 16:09:02
【问题描述】:
我已经打印了总数和平均值。但是我无法打印出有多少数字大于平均值。
我认为问题出在number>= average,似乎只添加了最后一个输入。
public static void main(String[] args) {
int i;
int number = 0;
double total=0;
double average=0;
int aboveaverage=0;
Scanner read = new Scanner (System.in);
for(i=1;i<9;i++){
System.out.print("Enter number " + i +": ");
number=read.nextInt();
if(number<0){
System.out.println("Invalid Input");
break;
}
total+=number;
}
if(number>=average){
aboveaverage+=1;
System.out.println("Greater than average is :" + aboveaverage);
}
average=total/8;
System.out.println("Print total : "+ total);
System.out.println("Print Average : " +average );
}
}
【问题讨论】:
-
您必须收集
List<Integer>中的所有数字,以便在知道平均值后再次扫描它们。或者,由于您知道您将拥有多少个号码,您可以使用int[]。 -
@Andreas 如果元素数量已知,则不需要
List。 -
@MaximeLaunois 是的,我也刚刚意识到这一点,所以要加强评论。 :-)
-
除了数组有没有解决办法?我也觉得数组可能更容易做?
-
@zerofour 您必须以某种方式保存这些值,以便在计算出
average后再次扫描它们。数组是最好的选择,但需要你知道你会得到多少个数字。如果您事先不知道会得到多少个号码,List将是最佳选择。
标签: java