第一种方式:
int main()
{
int n;
int res = 0;
scanf("%d",&n);
while(n)
{
res = res*10+n%10;
n/=10;
}
printf("逆转后的数字是%d\n",res);
return 0;
}
第二种方式:
int main()
{
int n;
int res = 0;
scanf("%d",&n);
while(1)
{
res = res*10+n%10;
n/=10;
if(n==0)
{
break;
}
}
printf("逆转后的数字是%d\n",res);
return 0;
}
第三种方式:
int main()
{
int n;
int res = 0;
scanf("%d",&n);
for(;n;n/=10)
{
res = res*10+n%10;
}
printf("逆转后的数字是%d\n",res);
return 0;
}
第四种方式(比较不常用此方式)
#include<stdio.h>
#include<stdlib.h>
//1234567
//7654321
//1234 1000+200+30+4
//4321 4000+300+20+1
//12345 1,2,3,4,5
//12345/1%10 5
//12345/10%10 4
//12345/100%10 3
//12345/1000%10 2
//12345/10000%10 1 或者直接12345/10000就是1
int get10n(int n)
{
int res = 1;
for(int i=0;i<n;i++)//计数器
{
res*=10;
}
return res;
}
int main()
{
int num;
scanf("%d",&num);
int numA = num;
printf("要逆转的数字:%d\n",num);
int wei = 0;
while(1)
{
wei++;
num/=10;
if(num==0)
{
break;
}
}
printf("此数的位数是:%d\n",wei);
int res = 0;//记录最终结果
for(int i=0;i<wei;i++)
{
int nowwei = 0;//现在位上的阿拉伯数字
nowwei = numA/get10n(i)%10;
printf("%d\n",nowwei);
res+=nowwei*get10n(wei-1-i);
}
printf("转换以后的结果:%d",res);
return 0;
}