【问题标题】:How can I exclude -1 from this do…while loop?如何从这个 do...while 循环中排除 -1?
【发布时间】:2019-02-08 22:19:03
【问题描述】:

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

【问题讨论】:

    标签: c do-while


    【解决方案1】:

    在您的解决方案中,您的代码将读取等于 -1n 并添加,然后验证导致此问题的原因。

    你可以这样做:

    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++;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-30
      • 1970-01-01
      • 2020-08-28
      • 1970-01-01
      • 2021-07-27
      相关资源
      最近更新 更多