给一个不多于5位数的正整数,要求:
1.求出它是几位数
2.分别输出每一位数字
3.按逆序输出各位数字,例如原数为321,应输出123
判断一个整数是几位数
unsigned char GetFigures(int n)
{
unsigned char figures = 0;
while(n!=0)
{
n /= 10;
figures++;
}
return figures;
}
顺序打印整数
void PrintOrder(int n)
{
unsigned char figures = GetFigures(n); /* 获取n的位数 */
int power = (int)pow((float)10,(float)figures-1); /* 获取n最高位数字需要除模的数字 */
int temp;
if (0 == figures) /* n为0 */
{
printf("0\n");
}
if (n < 0) /* n小于0先打印“-”再处理数值 */
{
n = -n;
printf("-");
}
while(power != 0)
{
temp = n / power;
n %= power;
power /= 10;
printf("%d",temp);
}
printf("\n");
}
逆序打印整数
void PrintReverse(int n)
{
int temp;
if (0 == n) /* n为0 */
{
printf("0\n");
}
if (n < 0) /* n小于0先打印“-”再处理数值 */
{
n = -n;
printf("-");
}
while(n != 0)
{
temp = n % 10;
n /= 10;
printf("%d",temp);
}
printf("\n");
}