用C语言处理逆序数问题
要求依次输出
1.位数
2.每一个数字
3.逆序数
代码如下
#include<math.h>
#include<stdio.h>
int main()
{
int a,b,c,d,e;
printf("输入一个正整数:");
scanf("%d",&a);
int j=0;
int i=10;
b=1;
d=0;
e=a;
while(b!=0)//获得逆序数
{
d=d*10;
b=e/i;
c=e%i;
e=b;
j++;//获得位数
d=d+c;
}
printf("它是%d位数\n",j);
i=j;
printf("每一位数字:");
e=a;
for(j;j>=1;j--)//输出每一位数
{
int g=pow(10,j-1);
b=e/g;
e=e%g;
printf("%d ",b);
}
printf("\n逆序数为:%0*d",i,d);
return 0;
}
注意特殊输入
示例:
输入一个正整数:1000
输出:它是4位数
每一位数字:1 0 0 0
逆序数为:0001
这里用到printf方法%0*d *号表示位数,在后面用i替代