給一個不多於五位的正整數,要求:1.求出它是幾位數;2.分別輸出每一位數字;3.按逆序輸出各位數字,例如原數為321,應輸出123.

獻凝發表於2020-10-12

 這道題選擇使用函式來完成,其主要特點為巧妙運用除(/)和取餘(%)符號。依次輸出的思想為:獲取一位,丟棄一位。程式碼如下:

#include<stdio.h>
#include<math.h>
int Count(int n)
{
	int count=0;
	if(n==0)
	{
		return 1;
	}
	while (n!=0)
	{
		n/=10;
		count++;
	}
	return count;
}
void Output(int n)
{
	int count=Count(n);
	int power=pow(10.0,count-1);
	if(n==0)
	{
		printf("正序輸出為:0\n");
		return;
	}
	else
		printf("正序輸出為:");
	while(n!=0)
	{
		printf("%d ",n/power);
		n%=power;
		power/=10;
	}
	printf("\n");
}
void Reverse(int n)
{
	if(n==0)
	{
		printf("逆序輸出為:0\n");
		return;
	}
	else
		printf("逆序輸出為:");
	while(n!=0)
	{
		printf("%d ",n%10);
		n/=10;
	}
	printf("\n");
}
int main()
{
	int a;
	printf("請輸入需要求的數字:");
	scanf("%d",&a);
	printf("位數:%d\n",Count(a));
	Output(a);
	Reverse(a);
	return 0;
}

 

相關文章