请高手帮我看一下我的c++程序有什么问题?急用,急用!

我的程序是想要这样:给一个有多于5位的正整数,要求:1.求出它是几位数;2.分别输出每一位数字;3.按逆序输出各位数字,例如原数为321,应输出123.我的编程是这样的:... 我的程序是想要这样:给一个有多于5位的正整数,要求:1.求出它是几位数;2.分别输出每一位数字;3.按逆序输出各位数字,例如原数为321,应输出123.
我的编程是这样的:
#include<stdio.h>
void main()
{ long int a;
int b,c,d,e,f;
printf("请输入一个不多于五位的数值:");
scanf("%ld",&a);
if(a/10000!=0)
b=a/10000;
c=(a%10000)/1000;
d=(a%1000)/100;
e=(a%100)/10;
f=a%10;
printf("这是一个五位数。\n");
printf("万位的数字是%d\n",b);
printf("千位的数字是%d\n",c);
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d %d %d \n",f,e,d,c,b);
if(a/10000==0&&a/1000!=0)
c=a/1000;
d=(a%1000)/100;
e=(a%100)/10;
f=a%10;
printf("这是一个四位数。\n");
printf("千位的数字是%d\n",c);
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d %d \n",f,e,d,c);
if(a/10000==0&&a/1000==0&&a/100!=0)
d=a/100;
e=(a%100)/10;
f=a%10;
printf("这是一个三位数。\n");
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d \n",f,e,d);
if(a/10000==0&&a/1000==0&&a/100==0&&a/10!=0)
e=a/10;
f=a%10;
printf("这是一个二位数。\n");
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d \n",f,e);
if (a/10000==0&&a/1000==0&a/100==0&&a/10==0&&a%10!=0) printf("这是一个一位数。\n");}
就每次执行时,比如我输入一个三位数,它就会把它处理我五位数,四位数,三位数,二位数,一位数。请问一下,我的程序哪 里出错了???急用
展开
 我来答
煞神一刀
2009-10-08 · TA获得超过1116个赞
知道小有建树答主
回答量:1583
采纳率:0%
帮助的人:743万
展开全部
#include<stdio.h>
void main()
{ long int a;
int b,c,d,e,f;
printf("请输入一个不多于五位的数值:");
scanf("%ld",&a);
if(a/10000!=0)
{
b=a/10000;
c=(a%10000)/1000;
d=(a%1000)/100;
e=(a%100)/10;
f=a%10;
printf("这是一个五位数。\n");
printf("万位的数字是%d\n",b);
printf("千位的数字是%d\n",c);
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d %d %d \n",f,e,d,c,b);
}
else if(a/1000!=0)
{
c=a/1000;
d=(a%1000)/100;
e=(a%100)/10;
f=a%10;
printf("这是一个四位数。\n");
printf("千位的数字是%d\n",c);
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d %d \n",f,e,d,c);
}
else if(a/100!=0)
{
d=a/100;
e=(a%100)/10;
f=a%10;
printf("这是一个三位数。\n");
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d \n",f,e,d);
}
else if(a/10!=0)
{
e=a/10;
f=a%10;
printf("这是一个二位数。\n");
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d \n",f,e);
}
else if (a%10!=0)
{ printf("这是一个一位数。\n");}
}

由于你输出的后面有多个语句,所以要让他们整体输出就必须用{}括起来!
还有 if 语句的格式!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
想爱你而又不能
2009-10-08 · TA获得超过1477个赞
知道小有建树答主
回答量:276
采纳率:0%
帮助的人:226万
展开全部
if()后面有多语句的时候要用{}来括起来如:
if(a/10000==0&&a/1000==0&&a/100!=0)
{
d=a/100;
e=(a%100)/10;
f=a%10;
printf("这是一个三位数。\n");
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d \n",f,e,d);
}这样就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
壤驷曼8R
2009-10-08 · TA获得超过898个赞
知道小有建树答主
回答量:396
采纳率:100%
帮助的人:262万
展开全部
楼上正解
if(){受if限制的语句都要花括号括起来}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zx1996915
2009-10-08 · TA获得超过334个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:163万
展开全部
如果if语句成立运行多条语句
if语句后面要加{}

if(a>b)
{a-=3; b-=5;}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yx_robert
2009-10-08 · 超过18用户采纳过TA的回答
知道答主
回答量:102
采纳率:0%
帮助的人:49.7万
展开全部
if()
else if()
else if()
...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式