
#include<stdio.h>
int main()
{
int n,x,y;
printf("输入一个整数:");
scanf("%d", &n);
x=n;
int i;
printf("正序:%d\n",n);
for(i=1;i<=10;i++)
{
if(i==1) //i==1,也就是刚开始的状态
{
y=x%10;
printf("逆序:%d",y);
}
if(x<10) //如果分离到最后一位则跳出
break;
y=(x/10)%10; //求每次去除个位的个数数
printf("%d",y);
x=x/10; //去除已求出的个位
}
return 0;
}
#include <stdio.h>
//输入一个正整数(小于32768),并能逐位正序和反序输出
//分别涉及两个递归函数,一个实现正序输出,一个实现反序输出
int exponent(int x) //判断输入的这个数是几位数
{
int i=10,j=0;
if (x<10) return 1;
for(;;)
{ j++;
x/=i;
if (x==0) break;
}
return j;
}
void upright(int x)
{
int a[10],b,i,j;
b=exponent(x);
for (i=0;;i++)
{ a[i]=x%10;x/=10;
if (x==0) break; }
j=i;
for (;j>=0;j--) printf("%d",a[j]);
}
void upsidedown(int x) //递归倒叙输出
{
if (x<10) printf("%d",x);
else {
printf("%d",x%10);
x/=10;
upsidedown(x);
}
}
int main()
{
int x,j;
printf("输入一个正整数(小于32768)\n");
scanf("%d",&x);
printf("正序输出:\n");
upright(x);
printf("\n");
printf("反序输出:\n");
upsidedown(x);
printf("\n");
}