顺序、逆序输出十进制数n的每一个数字

一、统计一个整数n是几位数

int GetFigures(int n)
{
 int count = 0;
 do
 {
  count++;
  n /= 10;
 } while (n != 0);
return count;
}

n/10的作用是丢弃数字n的个位数字

二、逆序输出十进制数n的每一个数字

void PrintReverse(int n)
{
       if(n<0)
       {
             printf(“-”);
             n=-n;
       }
       do
       {
              printf("%d ",n%10);
              n /= 10;
       } while (n != 0);
       printf("\n");

printf("%d ",n%10); 中n%0的作用是输出个位
n /= 10; 的功能是丢弃个位

三、顺序输出十进制数n的每一个数字

void PrintfOrder(int n)
{
          int count=GetFigures(n);//调用函数求十进制数的位数
          int power=(int)pow(10.0,(count-1));
          do
         {
              printf("%d ",n/power);
              n %= power;))
              power /= 10;
          } while (n!=0);
          printf("\n");
}

顺序输出要比逆序输出稍微复杂一点,但是原理是相同的

总结:在实现 逆序输出十进制数n的每一个数字 问题的时候 ,n%10的作用是得到个位数字(我们想要输出的数字),n/10的作用是丢弃个位得到一个新的数。
在实现 顺序输出十进制数n的每一个数字 问题的时候 ,先求出n的位数然后求余得到最高位数字(我们想要输出的数)最后用除法得到去除了最高位的新的数字。

你可能感兴趣的:(一些有意思的题)