C 语言教程 在线

1760c-exercise-example29

参考方法:

#include<stdio.h>
int main(void)
{
    int n,count = 0,num;
    printf("请输入一个不多于5位的正整数:");
    scanf("%d",&n);
    num = n;
    while(n)
    {
        n = n/10;
        count++;
    }
    printf("为%d位数,逆序为:",count);
    while(num)
    {
        printf("%-3d",num%10);
        num = num/10;
    }
    return 0;
}

1759c-exercise-example29

参考实例:

#include <stdio.h>
 
int main( )
{
    int x;
    int y = 0;
    printf("请输入一个正整数:\n");
    scanf("%d", &x);

    printf("逆序为:\n");
    for (int i = x; i > 0; i /= 10)
    {
        printf("%d ", i % 10);
        y++;
    }
    printf("\n为 %d 位数 \n", y);
}

1758c-exercise-example29

参考解法

#include <stdio.h>
int main()
{
    int i,j,k,count=0;
    printf("请输入一个不多于5位的正整数:");
    scanf("%d",&i);
    printf("逆序为:");
    for(j=1;j<=5;j++)
    {
        k=i%10;
        i=i/10;
        count++;
        printf("%d ",k);
        if(i==0)
        {
            break;
        }
    }
    printf("\n为 %d 位数\n",count);
    return 0;
}

1757c-exercise-example29

参考解法:

#include <stdio.h>
#include<string.h>

void Reverse_Output( int n);
static char str[5];
int main()
{
     printf("请输入你的整数:");
     scanf("%s",str);
     printf("这是一个 %lu 位数。\n",strlen (str));
     printf("逆序为:");
     Reverse_Output(strlen (str));
    return 0;
}
void Reverse_Output(int n)
{
    while(n>0)
    {
        printf("%c ",str[--n]);
    }
}

1756c-exercise-example29

其他解法:

#include <stdio.h>

int main()
{ 
    int n;
    printf("请输入大于 10 的数字:");
    scanf("%d",&n);
    int x[1000];
    int i=0;
    int j=0;
    while(n!=0)
    {
        x[i]=n%10;
        n=n/10;
        i++;
    }
    int z=i;
    printf("该数字为 %d 位数",z);
    printf("\n逆序为:");
    for(j=0;j<z;j++)
    {
        printf("%d ",x[j]);
    }
}

以上实例输出结果为:

请输入大于 10 的数字:12345
该数字为 5 位数
逆序为:5 4 3 2 1