/*给出一个不多于五位的正整数,要求:
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.
对一个数字逆序输出:即先取个位,再以此类推,取十位等等。先模再除,以12345为例,取5,12345%10,丢5,12345/10.