如何从此do…while循环中排除-1?

时间:2019-02-08 22:19:04

标签: c do-while

该程序应该计算输入到-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;
}

1 个答案:

答案 0 :(得分:0)

在您的解决方案中,您的代码将读取等于n的{​​{1}}并进行添加,然后验证是哪个引起了此问题。

您可以这样做:

-1

甚至更好,例如:

do {
  scanf("%d", &n);
  if (n != -1) sum += n;
  i++;
} while (n != -1);