/*给一个不多于5位的正整数要求:(1)求出它是几位数(2)分别输出每一位数字(3)按逆序输出各位数字,123→321*/#include"stdio.h"main(){inta,b,c,d,e,place;/*place是位数*/long...
/* 给一个不多于5位的正整数 要求:
(1)求出它是几位数
(2)分别输出每一位数字
(3)按逆序输出各位数字,123→321*/
#include "stdio.h"
main()
{
int a,b,c,d,e,place; /*place是位数 */
long int f,g;
printf("please input a figure:");
scanf("%ld",&f);
if(f>=100000||f<0)
printf("error");
else if(f/10000>0)
place=5; /*用place为了方便第三问 也是一种更好的方法*/
/* printf("you 5 wei\n"); */
else if(f>999) /*此方法更简单*/
place=4;
/* printf("you 4 wei\n"); */
else if(f/100>0)
place=3;
/* printf("you 3 wei\n"); */
else if(f/10>0) /*不要写成% 应该是/除号*/
place=2;
/* printf("you 2 wei\n"); */
else
place=1;
/* printf("you 1 wei\n"); */ /*这里错了 写着 不能到达的代码在 main 函数中 因为%的缘故n%1*/
printf("you %d wei\n",place);
/*(2)*/
a=f/10000;
b=(f-(a*10000))/1000; /*把f用括号括进去*/
c=(f-((b*1000)+(a*10000)))/100;
d=(f-((c*100)+(b*1000)+(a*10000)))/10;
e=(f-((d*10)+(c*100)+(b*1000)+(a*10000)))/1;
printf("%d%d%d%d%d\n", a, b, c, d, e);
f=a*10000+b*1000+c*100+d*10+e*1;
/*g=e*10000+d*1000+c*100+b*10+a*1;*/
printf("kaishi de shu wei %d\n",f);
/* printf("dao guo lai de shu wei %d\n",g); */
/* } 若原数为123 错拉 显示到过来的数为32100 */
/*(3)*/
switch(place)
{
case 5:printf("dao guo lai de shu wei:");
printf("%d%d%d%d%d",e,d,c,b,a);
break;
case 4:printf("dao guo lai de shu wei:");
printf("%d%d%d%d",d,c,b,a);
break;
case 3:printf("dao guo lai de shu wei:");
printf("%d%d%d",c,b,a);
break;
case 2:printf("dao guo lai de shu wei:");
printf("%d%d",b,a);
break;
case 1:printf("dao guo lai de shu wei:");
printf("%d",a);
}
}
当你输入12345时没错 但是你输入123 会显示100 输入1234 应该会显示3210
还有一个问题就是第2问输入 123 会显示 00123 而不是123
我知道有点麻烦 大哥们拜托拉
展开