1. 程式人生 > >【7】有關於丟取數字(各十百千位)的運算

【7】有關於丟取數字(各十百千位)的運算

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

//wang
//7.13
#include<stdio.h>

//1.求出其是幾位數
int GetFigure(int n)
{
	int count = 0; 
  //方法1
	do
	{
		
		n /= 10;
		count++;
	}	while( n != 0);
	return count;

   //方法2
	if( n == 0)
	{count = 1;}
	while( n != 0)
	{
		
		n /= 10;
		count++;
	}
	return count;
}

//2.分別輸出其每一位數字
void PrintOrder(int n)
{
	int m = GetFigure(n);
	int power = 1;
	for ( int i = 0; i < m - 1; i++)
	{
		power *= 10;
	}
	do
	{
		printf("%d",n / power);
		n %= power;
		power /= 10;
	}while ( n != 0 );
	printf("\n");
}

//3.逆序輸出個位數字
void PrintReverse(int n)
{
	do
	{
		printf("%d", n % 10);
		n /= 10;
	}while( n != 0);
	printf("\n");
}

int main()
{
	printf("%d\n",GetFigure(12345));
//	printf("%d\n",GetFigure(-12345));//測試通過
//	printf("%d\n",GetFigure(123456789));//測試通過
//	printf("%d\n",GetFigure(0)); //測試通過
	PrintOrder(12345);
//	PrintOrder(0);
	PrintReverse(12345);

	return 0;
}
對一個數字求取幾位數字運算:對10進行除運算