不管是順序輸出還是逆序輸出,首先都要設計一個函數來實現統計十進制數位的位數:用tmp標記十進制數的位數,將數是否爲0作爲分類標準。
在逆序輸出每一位時需構造while回圈語句,回圈的次數即十進制數的位數,先利用n%10,得到個位並輸出,然後利用n/=10來丟棄個位。
在順序輸出中,也是構造while回圈語句,回圈次數即十進制數的位數,先利用n / (int)pow(10.0, i - 1)得到首位並輸出,接下來利用n %= (int)pow(10.0, i - 1)將首位丟棄。
#include<stdio.h>
#include<math.h>
int Figure(int n)
{
int tmp=0;
if (n == 0)
{
return 1;
}
while (n != 0)
{
tmp++;
n /= 10;
}
return tmp;
}
void Print(int n)//順序輸出
{
int i = Figure(n);
if (n == 0)
{
printf("0\n");
return;
}
while (n != 0 && i>=0)
{
printf("%d ", n / (int)pow(10.0, i - 1));//得到首位數位並輸出
n %= (int)pow(10.0, i - 1);//丟棄首位
i--;
}
printf("\n");
}
void ReversePrint(int n)//逆序輸出
{
if (n == 0)
{
printf("0\n");
return;
}
while (n != 0)
{
printf("%d ", n %10);//得到末尾數位並輸出
n /= 10;//丟棄末尾
}
printf("\n");
}
int main()
{
ReversePrint(12345);
ReversePrint(0);
ReversePrint(1);
ReversePrint(122);
ReversePrint(1234);
Print(12345);
Print(0);
Print(1);
Print(122);
Print(1234);
return 0;
}
偵錯結果: