Java 要求用户输入数字,然后计数并找出平均值
我需要编写一个代码,接收用户输入的数字并将其相加,显示正、负、零的数量,以及用户输入字母“e”后输入的数字数量的计数 但当我输入“e”时,程序终止而不打印计数或平均值 而且,平均数不起作用,因为它说我不能除以零Java 要求用户输入数字,然后计数并找出平均值,java,if-statement,sum,average,counting,Java,If Statement,Sum,Average,Counting,我需要编写一个代码,接收用户输入的数字并将其相加,显示正、负、零的数量,以及用户输入字母“e”后输入的数字数量的计数 但当我输入“e”时,程序终止而不打印计数或平均值 而且,平均数不起作用,因为它说我不能除以零 public static void main (String[] args){ Scanner input = new Scanner(System.in); int negative = 0; int positive = 0;
public static void main (String[] args){
Scanner input = new Scanner(System.in);
int negative = 0;
int positive = 0;
int zeroes = 0;
int sum = 0;
int count = 1;
int average = sum / (count - 1);
do{
System.out.print("Enter a float or 'e' to exit");
String entered = input.nextLine();
if("e".equals(entered)){
//print stuff
break;
}else{
int num;
try {
num = Integer.parseInt(entered);
} catch (NumberFormatException e) {
System.out.print(negative + positive +
zeroes + sum + (count - 1) + average);
continue; // re-do the loop
}
if(num < 0){
sum += num;
count++;
negative++;
}else if (num > 0){
sum += num;
count++;
positive++;
}else{//similar to comment above
sum += num;
count++;
zeroes++;
}
}
} while(true);
}
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int负=0;
int正=0;
整数零=0;
整数和=0;
整数计数=1;
整数平均值=总和/(计数-1);
做{
系统输出打印(“输入浮点或“e”退出”);
输入的字符串=input.nextLine();
如果(“e”。等于(输入)){
//印刷品
打破
}否则{
int-num;
试一试{
num=整数.parseInt(输入);
}捕获(数字格式){
系统输出打印(负片+正片+
零+和+(计数-1)+平均值);
continue;//重新执行循环
}
如果(num<0){
sum+=num;
计数++;
负++;
}如果(num>0){
sum+=num;
计数++;
正++;
}else{//与上面的评论类似
sum+=num;
计数++;
零++;
}
}
}虽然(正确);
}
}
您在“如果”条件下缺少打印。修改if条件,如下所示
if("e".equals(entered)){
//print stuff
System.out.print(negative + positive + zeroes + sum + (count - 1) + average);
break;
}
正如其他人所评论的,你需要考虑诸如“除零”之类的情况,也要处理输入验证。
当你尝试计算平均值时,<代码> int=求和/(计1);,您的计数
变量是1
。所以你在这里除以0
。看起来你的评论://print stuff
是正确的,只要把代码打印出来就行了。(并将平均计算移动到@gonzo建议的打印位置)