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