C----整数的位数及打印

本文详细介绍了如何计算一个整数的位数,包括十进制和十六进制,以及如何逆序和顺序输出整数的每一位。通过具体的代码示例,读者可以学习到实现这些功能的算法思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)求一个整数的位数 //计数器

例如: 12345
思路如下:
12345——>1234——>123——>12——>1
每次丢弃个位;直到 n 等于0

重点: 十进制数,要丢弃个位就是整除10,
那么如果要将一个十进制数转为十六进制有多少位???
由此发现, 十六 进制数整除16; n 进制数整除 n

代码如下:

 int  Count( int  n)
 {
	int tmp = 0;  //  位数
	
 if( n = 0)
    {
     return  1;
    }
    while ( n !=  0)
     	{
	n /= 10;  //丢弃个位
	tmp++;
       }
      return   tmp;  
   }

(2)将一个整数的各位逆序输出

思路如下:
在(1)函数中 在将个位丢弃前将其打印出来

代码如下:

   void  PrintReverse( int n)
   {
	while(n != 0)
	{
	  printf("%d  ",n/10);
	  n /= 10;
         }

    printf("\n");
}

(3)将一个整数的各位顺序输出

例如:12345
思路如下:12345——>2345——>345——>45——>5
12345%10000 //10的4次方*
2345%1000 //10的3次方*
345%100 //10的2次方*
45%10 //10的1次方*
每次 n % (10的 n的位数减1次方),要打印的数字就是 n/(10的 n的位数减1次方)

代码如下:

  void  PrintOrder(int n)
  {
    int x=1;
    int m = Count(n)  //调用(1)
    
    for(int i =0; i< m-1;i++)
    {
      x*=10;
   }
  while( n != 0)
  {
     printf("%d ",n/x);
     n%=x;
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值