八块腹肌的胖子 发表于 2020-4-5 21:06:53

S1E14动动手1,代码中一个判断条件求助

求助 为什么以status==1作为判断条件?status是否应该等于上一次循环的num值而不是1?

原问题
1. 写一个程序,对用户输入的整数进行求和。当用户输入任意字符时,结束程序并打印结果。
#include <stdio.h>

int main()
{
      int num = 0;
      long sum = 0L; // 0L表示类型为long的0
      int status;

      do
      {
                printf("请输入合法的数字:");
                sum = sum + num;
                status = scanf("%d", &num);
      } while(status == 1);

      printf("结果是:%ld\n", sum);

      return 0;
}

qiuyouzhi 发表于 2020-4-5 21:09:22

scanf是有返回值的,如果成功接收到输入了就返回1,否则返回其他值(记不太清楚了)

BngThea 发表于 2020-4-5 21:09:44

判断条件是scanf的返回值,而不是输入的值
如果正常输入了数据,那么scanf返回了1,就继续循环,否则退出循环
页: [1]
查看完整版本: S1E14动动手1,代码中一个判断条件求助