Problem Description
输入一个不多于5位的正整数,要求:
(1)求出它是几位数;
(2)分别输出每一位数字;
(3)按逆序输出各位数字。
Input
输入一个不多于5位的正整数。
Output
输出数据有3行,第一行为正整数位数,第二行为各位数字,第三行为逆序的各位数字。
Sample Input
123
Sample Output
3
1 2 3
3 2 1
#include<stdio.h>
int main()
{
int flag=0, n, i, a[10];
scanf("%d", &n);
while (n) //分离整数
{
a[flag++] = n % 10; //将每次取余的值都存放在开始定义的数组里并且flag的值+1
n=n/10; // 去掉数字的最后一位数
}
printf("%d\n", flag);
for(i=flag-1;i>=0;i--) //正序输出
{
if(i==0) //当输入的值只有一个的时候
printf("%d\n",a[i]);
else //当值不只有一个的时候
printf("%d ",a[i]);
}
for(i=0;i<flag;i++) //倒叙输出
{
if(i==flag-1)
printf("%d",a[i]);
else printf("%d ",a[i]);
}
return 0;
}
借鉴了大佬的方法和思路
地址如下啦
https://blog.csdn.net/qq_40014462/article/details/78510445