编写一个Java程序,要求您输入数字并添加它们,直到您键入0.然后将打印出来
数字的平均值。以下是输出结果的示例:
Please type a sequence of numbers terminated by a 0
1
5
4
0
The total was 10.0
You typed in 3 numbers
The average is 3.3333
我决定自学Java&刚开始编程不久前我还在努力完全理解用于满足程序要求的组合。我一直在做这些在线挑战,并要求一个程序输入数字并添加它们直到用户输入零,最重要的是,它还必须显示输入了多少总数和那些的平均值。我已经开始使用while循环和扫描仪,但我目前正在努力和坚持这个问题:
import java.util.Scanner; 公共课问题4 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Please type a sequence of numbers terminated by a 0");
int counter = 0;
int num = scan.NextInt();
while (num != 0){
System.out.println(num);
if (num == 0) break;
counter++;
}
int total = 0;
total+=num;
double average = 0;
average = total / counter;
System.out.println("The total was " + total);
System.out.println("You typed in " + counter + " numbers");
System.out.println("The average is " + average);
}
}
我找不到符号'第8行的错误
答案 0 :(得分:1)
您的计划有2个问题: 1。您在使用前忘记声明num
。声明它并为其分配非零值。 2。您应该在循环中将num
添加到total
,这样您也应该在循环之前声明它。
int counter = 0, num = 1, total = 0;
while(num != 0){
num = scan.nextInt();
if(num == 0)
break;
counter++;
total += num;
}
double average = (double)total/counter;
建议:无论何时将整数除以另一个整数(在本例中为total / counter),请确保将一个整数转换为double(或float)以防止丢失小数位。
答案 1 :(得分:0)
您已在循环中声明num
。因此,它不能在循环外访问,但是你在外面使用它,因此编译器找不到num
。
为了获得所需的结果,在while循环之前声明num
你应该学习关于变量的范围。您的程序不会产生预期的输出,因为您应该在循环
total
变量
答案 2 :(得分:0)
您需要在使用之前声明num
变量