C语言 给出一个不多于5位的正整数。1.输出它是几位数 2.输出每一位数字 3.按逆序输出各位数字,
#include"stdio.h"voidmain(){intx,a,b,c,d,e,n,j;printf("请输入一个不多于5位的正整数\n");scanf("%d",...
#include "stdio.h"
void main()
{
int x,a,b,c,d,e,n,j;
printf("请输入一个不多于5位的正整数\n");
scanf("%d",&x);
a=x/10000;
b=x/1000-a*10;
c=x/100-a*100-b*10;
d=x/10-a*1000-b*100-c*10;
e=x-a*10000-b*1000-c*100-d*10;
if(a!=0)n=5;
else if(b!=0)n=4;
else if(c!=0)n=3;
else if(d!=0)n=2;
else n=1;
if(a>9)printf("输入的数大于5位\n");
printf("该数字是%d位数,万位%d,千位%d,百位%d,十位%d,个位%d\n",n,a,b,c,d,e);
if(n=5)j=e*10000+d*1000+c*100+b*10+a;
else if(n=4)j=e*1000+d*100+c*10+b;
else if(n=3)j=e*100+d*10+c;
else if(n=2)j=e*10+d;
else j=e;
printf("该数的逆序是%d\n",j);
} 展开
void main()
{
int x,a,b,c,d,e,n,j;
printf("请输入一个不多于5位的正整数\n");
scanf("%d",&x);
a=x/10000;
b=x/1000-a*10;
c=x/100-a*100-b*10;
d=x/10-a*1000-b*100-c*10;
e=x-a*10000-b*1000-c*100-d*10;
if(a!=0)n=5;
else if(b!=0)n=4;
else if(c!=0)n=3;
else if(d!=0)n=2;
else n=1;
if(a>9)printf("输入的数大于5位\n");
printf("该数字是%d位数,万位%d,千位%d,百位%d,十位%d,个位%d\n",n,a,b,c,d,e);
if(n=5)j=e*10000+d*1000+c*100+b*10+a;
else if(n=4)j=e*1000+d*100+c*10+b;
else if(n=3)j=e*100+d*10+c;
else if(n=2)j=e*10+d;
else j=e;
printf("该数的逆序是%d\n",j);
} 展开
展开全部
#include "stdio.h"
void main()
{
int x,a,b,c,d,e,n,j;
printf("请输入一个不多于5位的正整数\n");
scanf("%d",&x);
a=x/10000;
b=x/1000-a*10;
c=x/100-a*100-b*10;
d=x/10-a*1000-b*100-c*10;
e=x-a*10000-b*1000-c*100-d*10;
if(a!=0)n=5;
else if(a==0 && b!=0)n=4;
else if(a==0 && b==0 && c!=0)n=3;
else if(a==0 && b==0 && c==0 && d!=0)n=2;
else n=1;
if(a>9)printf("输入的数大于5位!\n");
else
{
if(n==1) printf("该数字是%d位数,个位%d\n",n,e);
else if(n==2) printf("该数字是%d位数,十位%d,个位%d\n",n,d,e);
else if(n==3) printf("该数字是%d位数,百位%d,十位%d,个位%d\n",n,c,d,e);
else if(n==4) printf("该数字是%d位数,千位%d,百位%d,十位%d,个位%d\n",n,b,c,d,e);
else if(n==5) printf("该数字是%d位数,万位%d,千位%d,百位%d,十位%d,个位%d\n",n,a,b,c,d,e);
if(n==5)j=e*10000+d*1000+c*100+b*10+a;
else if(n==4)j=e*1000+d*100+c*10+b;
else if(n==3)j=e*100+d*10+c;
else if(n==2)j=e*10+d;
else j=e;
printf("该数的逆序是%d\n",j);
}
}
楼主是新手吧?
你在判断语句里写的n=5之类的是赋值语句
if(n=5) 表示的是如果把5赋值给n 成功了,则执行if后的语句
而if(n==5)才是判断n 是否等于5
void main()
{
int x,a,b,c,d,e,n,j;
printf("请输入一个不多于5位的正整数\n");
scanf("%d",&x);
a=x/10000;
b=x/1000-a*10;
c=x/100-a*100-b*10;
d=x/10-a*1000-b*100-c*10;
e=x-a*10000-b*1000-c*100-d*10;
if(a!=0)n=5;
else if(a==0 && b!=0)n=4;
else if(a==0 && b==0 && c!=0)n=3;
else if(a==0 && b==0 && c==0 && d!=0)n=2;
else n=1;
if(a>9)printf("输入的数大于5位!\n");
else
{
if(n==1) printf("该数字是%d位数,个位%d\n",n,e);
else if(n==2) printf("该数字是%d位数,十位%d,个位%d\n",n,d,e);
else if(n==3) printf("该数字是%d位数,百位%d,十位%d,个位%d\n",n,c,d,e);
else if(n==4) printf("该数字是%d位数,千位%d,百位%d,十位%d,个位%d\n",n,b,c,d,e);
else if(n==5) printf("该数字是%d位数,万位%d,千位%d,百位%d,十位%d,个位%d\n",n,a,b,c,d,e);
if(n==5)j=e*10000+d*1000+c*100+b*10+a;
else if(n==4)j=e*1000+d*100+c*10+b;
else if(n==3)j=e*100+d*10+c;
else if(n==2)j=e*10+d;
else j=e;
printf("该数的逆序是%d\n",j);
}
}
楼主是新手吧?
你在判断语句里写的n=5之类的是赋值语句
if(n=5) 表示的是如果把5赋值给n 成功了,则执行if后的语句
而if(n==5)才是判断n 是否等于5
展开全部
已经有人给你答案了,出与尊重我就不写了,不过你要记得=和==的区别
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你究竟是想问什么?...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你想问什么?程序有些问题,判断条件中的赋值符号=换成==
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询