c语言小程序之 如何输出一个整数的每一位的几种解法及优化

本文介绍了三种输出整数各位数字的方法:直接输出法、数组存储输出法及递归输出法,并提供了C语言代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如题,假设想要输出一个整数 n 的每一位,我们可以想到使用 n%10和 n /10,n的个位上的数值 = n%10;令n= n/10,则n的十位上的数值 =n%10······ 以此类推其余位便可求的。下面我们用代码实现:

#include <stdio.h>
int main()
{
	int n;
	printf("请输入一个整数:\n");
	scanf("%d", &n);
	while (n)
	{
		if (n < 0)
		{
			n = -n;
		}
		printf("   %d\n", n % 10);
		n = n / 10;
	}
	system("pause");
	return 0;
}

当然,除了上述方法之外还可以把整数n的每一位都存在数组里,再一一输出,代码实现如下:

#include <stdio.h>
int main()
{
	int n,i;
	int arr[10];
	printf("请输入一个整数:\n");
	scanf("%d", &n);
	
		for (i = 0;i < 10;i++)
		{
			while (n)
			{
				if (n<0)
				{
					n = -n;
				}
				arr[i] = n % 10;
				n = n / 10;
				printf(" %d \n", arr[i]);
			}
		}
	system("pause");
	return 0;
}

除了这两种方法之外,还有一种方法也可以实现上述问题,就是利用递归函数可以调用自己本身的特点来代替上面的循环操作,代码实现如下:

#include <stdio.h>
void print_num(int n)
{
	if (n != 0)
	{
		if (n<0)
		{
			n = -n;
		}
		printf(" %d \n", n % 10);
		print_num(n / 10);
	}
}
int main()
{
	int n;
	printf("请输入一个整数:\n");
	scanf("%d", &n);
	print_num(n);
	system("pause ");
	return 0;
}








评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值