判斷一個正整數的位數、按逆序輸出、按正序輸出
#if 0
//判斷一個數字有幾位數
#include <stdio.h>
int GetFigure(int n)
{
int flg=0;
do{
n /= 10;
flg++;
}while(n != 0); //此迴圈用do-while代替while(或在while前加if語句[方法二])可以使n=0時正確執行
return flg;
}
int main()
{
printf("%d\n",GetFigure(0));
printf("%d\n",GetFigure(-11));
printf("%d\n",GetFigure(12345678));
return 0;
}
/*
//方法二
#include <stdio.h>
int GetFigure(int n)
{
int flg=0;
if(n != 0)
{
while(n != 0)
{
n /= 10;
flg++;
}
}
return flg;
}
int main()
{
printf("%d\n",GetFigure(0));
printf("%d\n",GetFigure(-11));
printf("%d\n",GetFigure(12345678));
return 0;
}
*/
#endif
/*
//按逆序輸出數字(得個位丟個位)
#include <stdio.h>
void A(int n)
{
if(n < 0)
{
n = -n;
printf("-");
} //優化n為負數時的執行結果
do{
printf("%d",n%10);
n /= 10;
}while(n != 0);
printf("\n");
}
int main()
{
A(0);
A(132);
A(-132);
return 0;
}
*/
/*
//按正序輸出數字(得高位丟高位[需要呼叫求位數的程式碼])
#include <stdio.h>
#include <math.h>
int GetFigure(int n)
{
int flg=0;
do{
n /= 10;
flg++;
}while(n != 0);
return flg;
}
void B(int n)
{
int count;
count = GetFigure(n);
int p =(int) pow(10.0,count-1);
if(n < 0)
{
n = -n;
printf("-");
}
do{
printf("%d",n/p);
n %= p;
p /= 10;
}while(n != 0);
printf("\n");
}
int main()
{
B(0);
B(111);
B(123);
B(-123);
return 0;
}
*/