首页 > 解决方案 > 如何在for循环中输入if语句?

问题描述

我正在尝试计算 5 个数字的平均值,它们都低于 10。任何帮助将不胜感激,因为我仍处于学习的早期阶段。

int num1, num2;
  int sum, i;
  float average;

  printf ("Enter five numbers to calculate the average:");

  for (i = 0; i < 5; i++){
      scanf ("%d", num1);

      if (num1 > 10){
      printf ("You can't enter this number\n");
      printf ("Enter five numbers to calculate the average:");
      scanf ("%d", num1);
    }
    else{
        num1=num2;
    }
    sum += num2;
  }

  average = sum / 5;
  printf ("Average is: %f", average);

标签: cfor-loopif-statement

解决方案


你的第一份工作是写scanf("%d", &num1);,注意指针。最终你应该检查 too 的返回值scanf——如果读取了一个数字,它应该是 1。

一种方法(不是每个人的口味)是将if身体重写为

if (num1 > 10){
    printf ("You can't enter this number\n");
    printf ("Enter five numbers to calculate the average:");
    --i;
} ...

这反转了 的增量i

另一种方法(我更喜欢)是只增加分支,并从第三个循环表达式中i删除。elsei++for

你的任务num1 = num2;也有问题,没有什么是你不能用调试器解决的,你也会意识到你需要average = sum / 5.0f;避免截断。


推荐阅读