数的逆序:
输入一个正整数,输出其逆序数:通过对数的不断分解,得到所需结果
#include <stdio.h>
main()
{
int x;
scanf("%d",&x);
int i;
int j=0;
while(x>0){
i=x%10;
j=j*10+i;
printf("x=%d,i=%d,j=%d\n",x,i,j);
x/=10;
}
printf("%d",j);
return 0;
}
但是不难发现当尾数有0时,逆序难以输出0,我们可以把程序改成如下形式:
#include <stdio.h>
main()
{
int x;
scanf("%d",&x);
int i;
int j=0;
while(x>0){
i=x%10;
printf("%d",i);
j=j*10+i;
x/=10;
}
return 0;
}
整数分解:
对一个整数做%10的操作,就得到个位数;
然后再对其做/10的操作,去掉个位数;
然后再对剩余数做%10的操作,得到十位数;
再对剩余数做/10操作,去掉十位数;
……
以此类推
将整数分解应用:
#include <stdio.h>
main()
{
int x;
scanf("%d",&x);
int max=1;
int t=x;
while(t>9){
t/=10;
max*=10;
}
//printf("max=%d\n",max); 对不需要输出的进行处理
while(max>0){
int j=x/max;
printf("%d ",j);
x%=max;
max/=10;
}
}