【C语言】给一个整数,1,求它为几位数。2,打印每一位数。3,逆打印每一位数。

1,这个题可以分割为三个问题来解决;

一:求几位数

二:打印每一位数

三:逆打印每一位数

2,先写问题(一)代码如下:

#include 
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 
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 
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,不懂的宝子们可私信我,我会一一解答的;

你可能感兴趣的:(c语言,算法,数据结构)