处理数字类问题

#include <stdio.h>
//十进制数字n是个几位数字
int GetFigures(int n)
{
 int count = 0;
 do
 {
  count++;
  n /=10;
 }while(n != 0);//n>0
return count;
}

//逆序输出十进制数字n的每一位,比如123->3 2 1
void PrintReverse(int n)          //打印一个负号
{
  if(n < 0)
  {
   printf("-");
   n = -n;
  }
  do
  {
   printf("%d ",n%10);
   n /= 10;
  }while(n != 0);
  printf("\n");

}


//顺序输出
void PrintOrder(int n)          //打印多个负号
{
 int a = GetFigures(n);
 int power = 1;
 for(int i=0;i<a-1;i++)
 {
  power *= 10;
 }
 do
 {
  printf("%d ",n/power);
  n %= power;
  power /= 10;
 }while(n != 0);
 printf("\n");
}

int main()
{
 printf("%d\n",GetFigures(0));
 printf("%d\n",GetFigures(123456789));
 printf("%d\n",GetFigures(-123456789));


 PrintReverse(0);
 PrintReverse(123456789);
 PrintReverse(-123456789);

 PrintOrder(0);
 PrintOrder(123456789);
 PrintOrder(-123456789);

 return 0;
}

猜你喜欢

转载自blog.csdn.net/ymy_mine/article/details/78640380