严凯 发表于 2020-11-17 15:36:53

超级简单问题

#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;
}

//上面这个是某个大神写的代码。他的很完整。下面是我写的
#include<stdio.h>
int main()
{
        int i,j,k=0;
        for(i=1;;i++)
        {
                printf("请输入合法字符");
        scanf("%d",&j);
                if(j<0||j>9)
                {
                        break;
                }
        k=k+j;
        }
        printf("结果是%d\n",k);
        return 0;
}
//就是我这个如果输入的数字大于9之后,就不能加了,直接跳出来,我想问问,我这个在if里面怎么改,才能改为和上面一样的效果?

严凯 发表于 2020-11-17 15:39:07

我自己改了一下,就是吧if里面改为了if(j<-9999||j>9999)
但是当我输入一个英文字母的时候,就进入死循环了。。。。

严凯 发表于 2020-11-17 15:50:41

严凯 发表于 2020-11-17 15:39
我自己改了一下,就是吧if里面改为了if(j9999)
但是当我输入一个英文字母的时候,就进入死循环了。。。。

我自己已经解决了,{:10_269:}
#include<stdio.h>
int main()
{
        int i,j,k=0,state;
        for(i=1;;i++)
        {
                printf("请输入合法字符");
        state=scanf("%d",&j);
                if(!state)
                {
                        break;
                }
        k=k+j;
        }
        printf("结果是%d\n",k);
        return 0;
}
页: [1]
查看完整版本: 超级简单问题