Christopher. 发表于 2020-8-12 18:20:09

求解答

帮忙看一下这个吧,不是很懂
写一个程序,对用户输入的整数进行求和。当用户输入任意字符时,结束程序并打印结果。aQSi

#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;
}
尤其是status = scanf("%d", &num);这句
这个scnaf为什么要==1,他不是返回的是个数吗,如果是英文字母,字符个数不也是1吗

zltzlt 发表于 2020-8-12 18:21:53

不是返回的字符个数,如果 num 被成功赋了值,status 就为 1

baige 发表于 2020-8-12 18:23:54

如果输入的是整数符合%d这个格式就返回1

Christopher. 发表于 2020-8-12 18:25:58

baige 发表于 2020-8-12 18:23
如果输入的是整数符合%d这个格式就返回1

好的谢谢啦

Christopher. 发表于 2020-8-12 18:26:31

zltzlt 发表于 2020-8-12 18:21
不是返回的字符个数,如果 num 被成功赋了值,status 就为 1

感谢感谢
页: [1]
查看完整版本: 求解答