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:按逆序输出各位数字.
我编为什么会出现一个错误.
展开
 我来答
WXD110114dccd8
2007-11-08 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.6万
采纳率:43%
帮助的人:9104万
展开全部
语法错误:

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);
软件xiaoy
2007-11-09
知道答主
回答量:12
采纳率:0%
帮助的人:0
展开全部
在main 函数中在定义完long x;后用scanf("%ld",&x); 进行复值,就可以了.
你的程序里面其实跟你输入的X无关,它是系统给的一个随即数,你单步执行下就可以看见.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式