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

給一個不多於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");
}

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