给一个不多于五位数的正整数,要求:
1、求出它是几位数
2、分别输出每一位数字
3、按逆序输出各位数字
第一问
思想:每次丢弃个位
#include<stdio.h>
int GetFigures(int n)
{
if(n == 0)
return 1;
int count = 0;
while(n != 0)
{
count++;
n /= 10;//丢弃个位
}
return count;
}
int main()
{
printf("&d\n",GetFigures(12345));
return 0;
}
第二问
仍旧是得到个位和丢弃个位
#include<stdo.h>
void PrintReverse(int n)
{
if(n < 0)
{
printf("-");
n = -n;
}
do
{
printf("%d ",n%10);//得到个位
n /= 10;//丢弃个位
}while(n != 0);
printf("\n");
}
int main()
{
PrintReverse(12345);
return 0;
}
第三问
逆序输出,依旧有得个位和丢个位
#include<stdio.h>
void PrintOrder(int n)
{
int count = GetFigures(n);//得到n是几位数字
int power = (int)pow(10.0,count-1);
do
{
printf("%d ",n/power);
n %= power;
power /= 10;
}while(n != 0);
printf("\n");
}
int main()
{
PrintOrder(12345);
return 0;
}