给一个不多于5位的整数,要求
(1)求出他是几位数;
(2)分别输出每一位数字;
(3)按逆序输出各位数字,例如原数为321,应输出123;
代码:
#include<stdio.h>
#include<math.h>
int main()
{
int num,G,S,B,Q,W,place;//G,S,B,Q,W分别代表各位,十位,百位,千位
printf("请输入一个数(0-9999)\n");
scanf("%d",&num);
if(num>9999)
place=5;
else if(num>999)
place=4;
else if(num>99)
place=3;
else if(num>9)
place=2;
else place=1;
printf("这个数的位数==%d\n",place);
W = num/10000;
Q = (int)(num - W*10000)/1000;
B = (int)(num - W*10000-Q*1000)/100;
S = (int)(num - W*10000-Q*1000-B*100)/10;
G = (int)(num - W*10000-Q*1000-B*100-S*10);
switch(place)
{
case 5:
printf("分别输出的每一位数字为:\n");
printf("%d,%d,%d,%d,%d\n",W,Q,B,S,G);
printf("反向输出为:\n");
printf("%d%d%d%d%d",G,S,B,Q,W);
break;
case 4:
printf("分别输出的每一位数字为:\n");
printf("%d,%d,%d,%d\n",Q,B,S,G);
printf("反向输出为:\n");
printf("%d%d%d%d",G,S,B,Q);
break;
case 3:
printf("分别输出的每一位数字为:\n");
printf("%d,%d,%d\n",B,S,G);
printf("反向输出为:\n");
printf("%d%d%d",G,S,B);
break;
case 2:
printf("分别输出的每一位数字为:\n");
printf("%d,%d\n",S,G);
printf("反向输出为:\n");
printf("%d%d",G,S);
break;
case 1:
printf("分别输出的每一位数字为:\n");
printf("%d\n",G);
printf("反向输出为:\n");
printf("%d",G);
break;
}
getch();
return 0;
}
此代码使用DEV-C++ 编译环境