题目描述:
给出一个不多于5位的正整数,求
(1)求出它是几位数
(2)分别输出每一位数字
(3)按逆序输出各位数字,例如原数字为321,应输出123.
要求:
输入整数
输入样例:
123
输出样例:
3
1 2 3
321
我的代码:
应该是最后一位后面多了个空格
void print(int n)
{
if(n>9)
print(n/10);
if(n>9)
printf("%d ",n%10);
else
printf("%d",n%10);
}
最后多了空格,print函数需要修改一下:
代码修改如下:
void print(int n)
{
static int k = n;
if(n>9)
{
print(n/10);
}
if(k == n)
printf("%d",n%10);
else
printf("%d ",n%10);
}
供参考:
#include<stdio.h>
int main()
{
int n,s=0,k=0;
scanf("%d",&n);
while(n)
{
k++;
s = s*10 + n%10;
n /= 10;
}
printf("%d",k);
n = s; k = 0;
while(s)
{
printf(k++ == 0?"\n%d":" %d",s%10);
s /= 10;
}
printf("\n%d",n);
return 0;
}