请会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)任选一个 谢谢 展开
#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)任选一个 谢谢 展开
展开全部
你括号的对应有问题,其他还有些小毛病,不过逻辑上没错误。
#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;
}
#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;
}
追问
我按照你说的步骤把问题都改了 但不知道为什么程序运行起来有问题 也就是无法显示数据 就是一开就死掉了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
调试过的代码,通过
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;
}搞定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
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的 但是还是很感谢高手啊
追答
呵呵~~
以上代码只是参考了
学习编程,最主要的还是要自己动手了~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询