
C语言的小问题,帮忙解答一下,thanks very much!
#include<stdio.h>main(){longx;inta,b,c,d,e,f;b=(int)(x/10000);c=(int)((x-b*10000)/100...
#include<stdio.h>
main()
{
long x;
int a,b,c,d,e,f;
b=(int)(x/10000);
c=(int)((x-b*10000)/1000);
d=(int)((x-b*10000-c*1000)/100);
e=(int)((x-b*10000-c*1000-d*100)/10);
f=(int)(x-b*10000-c*1000-d*100-e*10);
scanf("%ld",&x);
while(x<=0||x>=100000)
{
printf("输入错误,请重新输入:\n");
scanf("%ld",&x);
}
if(x<10) a=1;
else if(x<100) a=2;
else if(x<1000) a=3;
else if(x<10000) a=4;
else (x<100000) a=5;
printf("%d\n",a);
switch(a)
{
case 1:printf("%ld\n",f);
printf("%ld\n",f);break;
case 2:printf("%ld%ld\n",e,f);
printf("%ld%ld\n",f,e);break;
case 3:printf("%ld%ld%ld\n",d,e,f);
printf("%ld%ld%ld\n",f,e,d);break;
case 4:printf("%ld%ld%ld%ld\n",c,d,e,f);
printf("%ld%ld%ld%ld\n",f,e,d,c);break;
case 5:printf("%ld%ld%ld%ld%ld\n",b,c,d,e,f);
printf("%ld%ld%ld%ld%ld\n",f,e,d,c,b);break;
}
printf("over.\n");
}
问题是:给一个不多于5位的正整数,求1:它是几位数;2:分别输出每一位数字;3:按逆序输出各位数字.
我编为什么会出现一个错误. 展开
main()
{
long x;
int a,b,c,d,e,f;
b=(int)(x/10000);
c=(int)((x-b*10000)/1000);
d=(int)((x-b*10000-c*1000)/100);
e=(int)((x-b*10000-c*1000-d*100)/10);
f=(int)(x-b*10000-c*1000-d*100-e*10);
scanf("%ld",&x);
while(x<=0||x>=100000)
{
printf("输入错误,请重新输入:\n");
scanf("%ld",&x);
}
if(x<10) a=1;
else if(x<100) a=2;
else if(x<1000) a=3;
else if(x<10000) a=4;
else (x<100000) a=5;
printf("%d\n",a);
switch(a)
{
case 1:printf("%ld\n",f);
printf("%ld\n",f);break;
case 2:printf("%ld%ld\n",e,f);
printf("%ld%ld\n",f,e);break;
case 3:printf("%ld%ld%ld\n",d,e,f);
printf("%ld%ld%ld\n",f,e,d);break;
case 4:printf("%ld%ld%ld%ld\n",c,d,e,f);
printf("%ld%ld%ld%ld\n",f,e,d,c);break;
case 5:printf("%ld%ld%ld%ld%ld\n",b,c,d,e,f);
printf("%ld%ld%ld%ld%ld\n",f,e,d,c,b);break;
}
printf("over.\n");
}
问题是:给一个不多于5位的正整数,求1:它是几位数;2:分别输出每一位数字;3:按逆序输出各位数字.
我编为什么会出现一个错误. 展开
2个回答
展开全部
语法错误:
else (x<100000) a=5;
改为
else if (x<100000) a=5;
算法错误:
b=(int)(x/10000);
c=(int)((x-b*10000)/1000);
d=(int)((x-b*10000-c*1000)/100);
e=(int)((x-b*10000-c*1000-d*100)/10);
f=(int)(x-b*10000-c*1000-d*100-e*10);
scanf("%ld",&x);
应改为
scanf("%ld",&x);
b=(int)(x/10000);
c=(int)((x-b*10000)/1000);
d=(int)((x-b*10000-c*1000)/100);
e=(int)((x-b*10000-c*1000-d*100)/10);
f=(int)(x-b*10000-c*1000-d*100-e*10);
else (x<100000) a=5;
改为
else if (x<100000) a=5;
算法错误:
b=(int)(x/10000);
c=(int)((x-b*10000)/1000);
d=(int)((x-b*10000-c*1000)/100);
e=(int)((x-b*10000-c*1000-d*100)/10);
f=(int)(x-b*10000-c*1000-d*100-e*10);
scanf("%ld",&x);
应改为
scanf("%ld",&x);
b=(int)(x/10000);
c=(int)((x-b*10000)/1000);
d=(int)((x-b*10000-c*1000)/100);
e=(int)((x-b*10000-c*1000-d*100)/10);
f=(int)(x-b*10000-c*1000-d*100-e*10);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询