请会c语言编程的高手帮我这个小白看下这段程序的问题,若能修改后附上详细解答发到我的邮箱将感激不敬,谢

这是我完成的一道实验题,题目是:编写程序,从键盘输入一个不多于4位的正数,能显示出它是几位数,并按正反两种顺序显示出各位数字。以下是我编写的错误程序:#include"s... 这是我完成的一道实验题,题目是:编写程序,从键盘输入一个不多于4位的正数,能显示出它是几位数,并按正反两种顺序显示出各位数字。以下是我编写的错误程序:
#include"stdio.h"
int main(void)
{
int x , a, b, c, d;
printf("请输入一个数:\n");
scanf("%d,&x");
if(x>=0&&x<10000){
a=x/1000;
b=(x%1000)/100;
c=((x%1000)%100)/10;
d=((x%1000)%100)%10;
}if(a!=0)
{
printf("4");
printf("正序%d\n",x);
} printf("反序%d%d%d%d\n" d,c,b,a);
{
else{if(b!=o)
{
printf("4");
printf("正序%d\n",x);
printf("反序%d%d%d%d\n"d,c,b,a);
}
else{if(c!=0)
printf("4");
printf("正序%d\n",x);
printf("反序%d%d%d%d\n"d,c,b,a);
}
else{if(d!=0)
printf("4");
printf("正序%d\n",x);
printf("反序%d%d%d%d\n"d,c,b,a);

}else pringf("输入不合法\n”);
return 0;
}
我的邮箱是(993658036@qq.com
julan.hi@163.com)任选一个 谢谢
展开
 我来答
百度网友b11052b
2011-10-29 · 超过16用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:46.8万
展开全部
你括号的对应有问题,其他还有些小毛病,不过逻辑上没错误。
#include"stdio.h"
int main(void)
{
int x , a, b, c, d;
printf("请输入一个数:\n");
scanf("%d,&x");
if(x>=0&&x<10000){
a=x/1000;
b=(x%1000)/100;
c=((x%1000)%100)/10;
d=((x%1000)%100)%10;
}if(a!=0)
{
printf("4");
printf("正序%d\n",x);
printf("反序%d%d%d%d\n", d,c,b,a); //这里本来少个 ,
}
else{if(b!=0)
{
printf("3");
printf("正序%d\n",x);
printf("反序%d%d%d%d\n",d,c,b,a);//这里本来少个 ,
}
else{if(c!=0){
printf("2");
printf("正序%d\n",x);
printf("反序%d%d%d%d\n",d,c,b,a);//这里本来少个 ,
}
else{if(c>=0){
printf("1");
printf("正序%d\n",x);
printf("反序%d%d%d%d\n",d,c,b,a);//这里本来少个 ,
}else printf("输入不合法\n");//这里一个中文一个英文 “
}
}
}

return 0;
}
追问
我按照你说的步骤把问题都改了 但不知道为什么程序运行起来有问题 也就是无法显示数据 就是一开就死掉了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
15210640957
2011-10-29 · 超过21用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:60.9万
展开全部
#include"stdio.h"
int main(void)
{
int x , a, b, c, d;
printf("请输入一个数:\n");
scanf("%d",&x);
if(x>=0&&x<10000)
{
a=x/1000;
b=(x%1000)/100;
c=((x%1000)%100)/10;
d=((x%1000)%100)%10;
}
else
printf("超出范围");
if(a!=0)
{
printf("4");
printf("正序");
printf("%d\n",x);
printf("反序");
printf("%d%d%d%d%d\n",d,c,b,a);
}
else
{
if(b!=0)
{
printf("4");
printf("正序%d\n",x);
printf("反序%d%d%d%d%d\n",d,c,b,a);
}
else
{
if(c!=0)
{
printf("4");
printf("正序%d\n",x);
printf("反序%d%d%d%d%d\n",d,c,b,a);
}
else
{
if(d!=0)
{
printf("4");
printf("正序%d\n",x);
printf("反序%d%d%d%d%d\n",d,c,b,a);
}
else
printf("输入不合法\n");

}
}
}
return 0;
}
调试过的代码,通过
追问
那个 朋友运行后有点问题啊 要求显示格式是:例如输入1234 
位数:n=4
正序:1234
反序:4321
而且你最后的反序出现了多余位数0
追答
恩?我在调试一下
#include"stdio.h"
int main(void)
{
int x , a, b, c, d;
printf("请输入一个数:\n");
scanf("%d",&x);
if(x>=0&&x<10000)
{
a=x/1000;
b=(x%1000)/100;
c=((x%1000)%100)/10;
d=((x%1000)%100)%10;
}
else
printf("超出范围");
if(a!=0)
{
printf("4");
printf("正序");
printf("%d\n",x);
printf("反序");
printf("%d%d%d%d\n",d,c,b,a);
}
else
{
if(b!=0)
{
printf("4");
printf("正序%d\n",x);
printf("反序%d%d%d%d%d\n",d,c,b,a);
}
else
{
if(c!=0)
{
printf("4");
printf("正序%d\n",x);
printf("反序%d%d%d%d%d\n",d,c,b,a);
}
else
{
if(d!=0)
{
printf("4");
printf("正序%d\n",x);
printf("反序%d%d%d%d%d\n",d,c,b,a);
}
else
printf("输入不合法\n");

}
}
}
return 0;
}搞定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bdlanyu
2011-10-29 · TA获得超过550个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:518万
展开全部
#include <stdio.h>

int main()
{
int x,i=0,n;
scanf("%d",&x);
for(n=x;n>0;n/=10)i++;/**统计位数**/
printf("%d\n%d\n",i,x);/**输出位数和正序数值**/
for(n=x;n>0;n/=10)printf("%d",n%10);/**取余,从低位先输出**/
return 0;
}
更多追问追答
追问
谢谢你的回答 但是有些太简洁了 没有提示输入 以及所得值的说明 如果交作业后会被老师K的 但是还是很感谢高手啊
追答
呵呵~~
以上代码只是参考了
学习编程,最主要的还是要自己动手了~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
永恒不动之爱恋
2011-10-29
知道答主
回答量:27
采纳率:0%
帮助的人:17.2万
展开全部
啊,我也不会!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式