1. 程式人生 > >c語言小程式之 如何輸出一個整數的每一位的幾種解法及優化

c語言小程式之 如何輸出一個整數的每一位的幾種解法及優化

如題,假設想要輸出一個整數 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;
}