输入一个整数小于32768

img


#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");

}