RayLee1 发表于 2022-3-5 12:26:41

小甲鱼S1E14课后题里的动手第一题


这是题目
#include<stdio.h>
int main()
{
        int num;
        int sum=0;
        {:10_266:}
       
                }
                while((num>='0')||(num<='9')||(num!='\n'));
               
               
               
        printf("结果为:%d",sum);
       
        return 0;
}
{:10_266:} 为什么实现不了{:10_266:} 我好菜{:10_266:}

RayLee1 发表于 2022-3-5 12:29:14

#include<stdio.h>
int main()
{
        int num;
        int sum=0;
       
       
                do
                {
                        printf("请输入合法的数字:");
                        scanf("%d",&num);
       
                        sum=sum+num;
       
                }
                while((num>='0')||(num<='9')||(num!='\n'));
               
               
               
        printf("结果为:%d",sum);
       
        return 0;
}

jhq999 发表于 2022-3-5 12:32:14

本帖最后由 jhq999 于 2022-3-5 12:35 编辑

RayLee1 发表于 2022-3-5 12:29


#include<stdio.h>
int main()
{
      int num=0;//////////
      int sum=0;
      
         
                do
                {
                        printf("请输入合法的数字:");
                        sum=sum+num;////////////
                        scanf("%d",&num);
      
                        
      
                }
                while((num>='0')||(num<='9')||(num!='\n'));
               
               
               
      printf("结果为:%d",sum);
      
      return 0;
}

jackz007 发表于 2022-3-5 12:54:08

本帖最后由 jackz007 于 2022-3-5 12:56 编辑

#include <stdio.h>

int main(void)
{
      char c                              ;
      int e                               ;
      for(e = 0 ;;) {
                printf("请输入合法数字 : ") ;
                c = getchar() - '0'         ;
                fflush(stdin)               ;
                if(c >= 0 && c <= 9) e += c ;
                else break                  ;
      }
      printf("结果为:%d\n" , e)          ;
}

RayLee1 发表于 2022-3-5 18:27:33

jackz007 发表于 2022-3-5 12:54


大佬,变成这样了我靠

jackz007 发表于 2022-3-5 18:49:00

RayLee1 发表于 2022-3-5 18:27
大佬,变成这样了我靠

      你不会搞错了吧,在我这里是这样:
D:\\C>g++ -o x x.c

D:\\C>x
请输入合法数字 : 5
请输入合法数字 : 4
请输入合法数字 : 3
请输入合法数字 : 2
请输入合法数字 : 1
请输入合法数字 : x
15

D:\\C>

jhq999 发表于 2022-3-5 18:59:32

jackz007 发表于 2022-3-5 18:49
你不会搞错了吧,在我这里是这样:

应该是回复我

      int num=0,ret=0;//////////
      int sum=0;
      
         
                do
                {
                        printf("请输入合法的数字:");
                        sum=sum+num;////////////
                        ret=scanf("%d",&num);
      
                        
      
                }while(ret);
               
               
               
      printf("结果为:%d",sum);
      
      return 0;

RayLee1 发表于 2022-3-12 21:22:45

jhq999 发表于 2022-3-5 18:59
应该是回复我

对对对,谢谢大佬

顶级太阳 发表于 2022-6-10 18:23:41

#include<stdio.h>

unsigned int i,ch,ch1,count=0,count1=0;//count为最终结果,count1为每次读入整数

int main()    //思路:1、读入所有字符,判断是否合法。2、计算每次输入全部整数。3、加到最后结果里。
{
while(1)
{
        printf("请输入合法的数字:");

        do
        {
                ch=getchar();
                if(ch>='0'&&ch<='9') //是数字的时候
                {
                        count1=10*count1+ch-'0';//读取十进制数字
                }
                else   //不是数字的话,跳出去
                {
                        ch1=ch;    //为了后面区分回车还是字母用临时变量
                       break;
                }
               
        }

        while (ch!='\n');

        count=count+count1;
        if(ch1=='\n') //如果是回车,返回循环
                ;
        else break;//如果不是回车,也不是数字,退出循环
        count1=0;    //单独一次循环的中间变量重置0

}
        printf("结果是:%d\n",count);

return 0;
}

顶级太阳 发表于 2022-6-10 18:25:00

我这个可以不只是输入个位数。验证了可以输入多位数。{:5_109:}
页: [1]
查看完整版本: 小甲鱼S1E14课后题里的动手第一题