您的位置:首页 > 其它

判断一个正整数的位数、按逆序输出、按正序输出

2018-03-27 23:55 543 查看
#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;
}
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐