1. 程式人生 > >判斷一個正整數的位數、按逆序輸出、按正序輸出

判斷一個正整數的位數、按逆序輸出、按正序輸出



#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;
}
*/