【题目分析】---- 逆序

给一个不多于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");
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章