这个问题在这里已经有答案了:
什么是调试器?它如何帮助我诊断问题(2个答案)
两年前关门了。
我是 java 新手。
如果你想知道我要解决的问题,请检查以下内容:http://codeforces.com/problemset/problem/200/b
这两个版本的代码解决了相同的问题:
1-(for loop)版本
public static void method() {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
double sum = 0;
for (int i = 0; i < n; i++)
sum += (sc.nextInt() / 100.0);
System.out.println(sum * 100.0 / n);
}
2-(while循环)版本
public static void method() {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
double sum = 0;
while (n-- > 0) {
sum += (sc.nextInt() / 100.0);
}
System.out.println((sum * 100.0) / n);
}
===================================================
以下是它们各自的输入:
三
50 50 100
以下是它们各自的输出:
1-(for循环):66.6667
2-(while循环):-200.0
为什么输出不同?
2条答案
按热度按时间hm2xizp91#
n--
这将更改n
它会成功的-1
最后。所以你的总数会减少-1
然后你得到-200
但在第一种解决方案中n
不会改变,最后200/3 = 66.6
uoifb46i2#
看起来你在递减n,然后求值,这将允许n变为负