该计划应该计算进入到-1号的平均水平,但我的代码计算与-1包括平均值。
我怎样才能排除-1被计算总和与平均值?
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
int sum = 0, i = 0;
float av;
do {
scanf("%d", &n);
sum += n;
i++;
} while (n != -1);
av = (float)sum / i;
printf("%f", av);
return 0;
}
在您的解决方案,你的代码会读取n
等于-1
和添加,然后验证这是导致此问题。
你可以做这样的:
do {
scanf("%d", &n);
if (n != -1) sum += n;
i++;
} while (n != -1);
甚至更好,就像这样:
while (1) {
scanf("%d", &n);
if (n == -1) break;
sum += n;
i++;
}