【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进行除运算
对一个数字顺序输出:先取首位,再丢弃首位,以此类推。以12345为例,先取1,即12345 / 10000,再丢弃1,即12345 % 10000,先除再模。
对一个数字逆序输出:即先取个位,再以此类推,取十位等等。先模再除,以12345为例,取5,12345%10,丢5,12345/10.

猜你喜欢

转载自blog.csdn.net/Murphy5222/article/details/81048617