如何在for循环中输入if语句?

时间:2019-04-09 12:03:14

标签: c for-loop if-statement

我正在尝试计算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);

1 个答案:

答案 0 :(得分:1)

您的第一项工作是写scanf("%d", &num1);,注意 pointer 。最终,您还应该检查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分支中增加else,并从第三个i++循环表达式中删除for。 / p>

您的分配num1 = num2;也是有问题的,调试器无法解决所有问题,并且您还将意识到需要average = sum / 5.0f;来避免截断。