1,这个题可以分割为三个问题来解决;
一:求几位数
二:打印每一位数
三:逆打印每一位数
2,先写问题(一)代码如下:
#include <stdio.h>
int main()
{
int n, m,cut=0;
scanf("%d", &n);
m = n;
while (n)
{
n /= 10;
cut++;
}
printf("它为 %d 位数",cut);
}
写m=n是为了后面求问题(二)
3,问题二运用递归来解决先命名函数再调用即可
函数如下:
void pr(int x)
{
if (x > 9)
pr(x / 10);
printf("%d ", x % 10);
}
结合:
#include <stdio.h>
void pr(int x)
{
if (x > 9)
pr(x / 10);
printf("%d ", x % 10);
}
int main()
{
int n, m, cut = 0;
scanf("%d", &n);
m = n;
while (n)
{
n /= 10;
cut++;
}
printf("它为 %d 位数\n", cut);
pr(m);
}
4,最后逆打印,我博客里有,就不细讲了,宝子们不会可以去看;
5,最后完整代码如下:
#include <stdio.h>
void pr(int x)
{
if (x > 9)
pr(x / 10);
printf("%d ", x % 10);
}
int main()
{
int n, m, cut = 0;
scanf("%d", &n);
m = n;
while (n)
{
n /= 10;
cut++;
}
printf("它为 %d 位数\n", cut);
printf("打印每一位数:\n");
pr(m);
printf("\n");
printf("逆打印为:\n");
int a;
while (m)
{
a = m % 10;
m /= 10;
printf("%d ", a);
}
}
6,不懂的宝子们可私信我,我会一一解答的;