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