67L1 发表于 2022-4-22 00:20:11

关于循环中scanf简单求和问题

scanf求和 与 scanf调用值

循环体中(某一段代码)

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


printf("请输入合法数字:");
      scanf("%d",&num);
      sum=sum+num;
      status=scanf("%d",&num);

printf("请输入合法数字:");
      status=scanf("%d",&num);
      sum=sum+num;


为什么后两个是错误的?scanf不应该在求和公式前面吗?求助!!!!

wp231957 发表于 2022-4-22 06:34:00

放完整代码

AnisHan 发表于 2022-4-22 12:12:45

scanf是有缓冲区的一般最后那个\n就是回车还留在里面等着下一个scanf吸收,如果不用getChar的话下面那个scanf就收到\n直接返回了

67L1 发表于 2022-4-22 23:52:54

wp231957 发表于 2022-4-22 06:34
放完整代码

#include<stdio.h>

int main()
{
      int num=0;
      long int sum=0L;
      int status;
      do
      {
      printf("请输入合法数字:");
      scanf("%d",&num);
      sum=sum+num;
      status=scanf("%d",&num);

      }
      while(status==1);

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

67L1 发表于 2022-4-22 23:57:18

67L1 发表于 2022-4-22 23:52


为什么循环体这个scanf   求和sum    返回值status   的顺序是错误的呢?       作业答案里 是先得返回值status再求和 sum=sum+num   但如果不先用scanf给num赋值求和的时候 计算机怎么知道num里面的数是啥

zzxhh628 发表于 2022-4-23 09:36:14

#include<stdio.h>

int main()
{
    int num=0;
    long int sum=0L;
    int status;
   
    do
    {
      printf("请输入合法数字:");
      sum=sum+num;
      status=scanf("%d",&num);
    }
    while(status==1);
   
    printf("结果是:%ld\n",sum);
    return 0;
}
页: [1]
查看完整版本: 关于循环中scanf简单求和问题