| 
 | 
 
10鱼币 
萌新想问一下为什么输入0不会得到输出的0,困扰我一下午了 
求帮助(代码挺啰嗦的,不够简洁,很抱歉) 
- #include<stdio.h>
 
 - #include<math.h>
 
 - int main()
 
 - {
 
 -     int a;
 
 -     long long b=0;
 
 -     long long e=0;
 
 -     char f;
 
 -     const int c=pow(2,sizeof(int)*8)/2-1;
 
 -     const int d=pow(2,sizeof(int)*8)/2*(-1);
 
 -         while((a=getchar())!='\n')
 
 -         {
 
 -                 f=a;
 
 -                 if(a>='0'&&a<='9')
 
 -                 {
 
 -                         b=10*b+(a-'0');
 
 -                 }
 
 -         }
 
 -                 {
 
 -                         if(b>=d&&b<=c)
 
 -                         {
 
 -                                 if(b!=0)
 
 -                                 printf("%lld",b);
 
 -                         }
 
 -                         else
 
 -                         {
 
 -                                 printf("超出定义范围");
 
 -                                 return 0;
 
 -                         }
 
 -                 }
 
 -                 if(b!=0)
 
 -                 {
 
 -                                 while(1)
 
 -                         {
 
 -                                 printf("\n");
 
 -                                 while((a=getchar())!='\n')
 
 -                                 {
 
 -                                         e=10*e+(a-'0');
 
 -                                 }
 
 -                                 if(e>=d&&e<=c)
 
 -                                 {
 
 -                                         printf("%lld",b);
 
 -                                 }
 
 -                                 else
 
 -                                 {
 
 -                                         printf("超出定义范围");
 
 -                                         return 0;
 
 -                                 }
 
 -                         }
 
 -                 }
 
 -         else if(f==0&&b==0)
 
 -         {
 
 -                 printf("0");
 
 -         }
 
 -         else
 
 -         {
 
 -                 printf("未找到数值");
 
 -         }
 
 -         return 0;
 
 - }
 
  复制代码 
 本帖最后由 jhq999 于 2021-8-12 17:54 编辑 
刚才说说错了,a=getchar();a=48
 
“else if(f==0&&b==0) 
        { 
                printf("0"); 
        } 
        else 
        { 
                printf("未找到数值"); 
        }” 
因为前面f=a,所以f等于48,不等于0,所以printf("未找到数值"); 
所以在a=getchar();后面应该加上a=a-48;
  
 
 
 |   
 
 
 
- 
 
 
 
 
最佳答案
查看完整内容 
刚才说说错了,a=getchar();a=48
“else if(f==0&&b==0)
        {
                printf("0");
        }
        else
        {
                printf("未找到数值");
        }”
因为前面f=a,所以f等于48,不等于0,所以printf("未找到数值");
所以在a=getchar();后面应该加上a=a-48; 
 
 
 
 
 
 
 |