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

标签 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);

最佳答案

您的第一个工作是编写 scanf("%d", &num1);,注意指针。最后,您还应该检查 scanf 的返回值 - 如果读取了数字,则返回值应该为 1。

一种方法(并不适合所有人的口味)是将 if 主体重写为

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

它反转了i的增量。

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

你的作业num1 = num2;也有问题,没有什么是你用调试器无法解决的,而且你还会意识到你需要average = sum/5.0f ; 以避免截断。

关于c - 如何在for循环中输入if语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55592429/

相关文章:

c - 编写一个程序,接受用户的输入并将其与文件中的单词进行比较

batch-file - 如何获取分配给在循环内处理的环境变量的逗号分隔字符串的每个项目?

c# - 在 'if' 语句中混淆使用逗号

android - If - Else on Pirates 未解决

将 int 转换为十六进制格式的字符串

c - C中的指针与递归

bash - `for`循环中缺少运算符

java - Java 打印数组

c - 在 Linux 上使用默认查看器打开文件

java - 如何使用循环绘制矩形?