输出整数的位数、顺序输出整数各位数字、逆序输出整数各位数字

一、输出整数的位数
  运用“去尾法”获取整数n的位数。“去尾法”是将整数n/10后重新赋值给n,可将整数n的最后一位数去掉。每次去掉一位,计数器+1,直到整数n被赋值为0时,计数器停止计数,此时计数器的数字为整数n的位数。考虑当整数n取0时,运用do-while循环语句可以进入循环。

源代码:

int GetFigures(int n)
{
	int count=0;      //计数器
	do
	{
		n=n/10;   //“去尾法”,对n进行赋值
		count++;  //去掉一位,计数器+1
	}
	while(n!=0);      //当n被赋值为0时停止循环
	return count;
}

二、逆序输出整数各位数字
  用do-while循环语句,将整数n%10依次打印结果,再运用“去尾法”将n赋值为n/10,直到n被赋值为0时,循环结束。可以得到n的每一位数字。

源代码:
void PrintReverse(int n)
{
	if(n<0)
	{
		printf("-");
	   n=-n;
	}		              //当整数n小于0时,输出一个“-”号
	do
	{
		printf("%d  ",n%10);  //输出整数的各位
		n=n/10;		      //去尾法”,对n进行赋值
	}while(n!=0);                 //当n被赋值为0时停止循环
	printf("\n");
}

三、顺序输出整数各位数字


   顺序输出整数的每一位。
  例如5234 输出 5  2   3  4,当5234/1000=5,5234%1000=234;
                                               234/100=2,     234%100=34;

                                                    ...                       ...

  由这个例子可以找出规律,整数n/(10的n的位数减一次方)的结果是n的最高位,再利用n%(10的n的位数减一次方)去掉n的最高位,进行循环,直到n被赋值为0时停止循环。


源代码:
void PrintOrder(int n)
{
	int tmp;
	tmp = GetFigures(n);         //调用GetFigures函数
	int power=1;                
	if(n<0)
	{
		printf("-");
		n=-n;
	}			     //当整数n为负数时,输出一个“-”号
	for(int i=0;i<tmp-1;i++)
	{
		power *= 10;
	}                            //10的n的位数减一次方
	do
	{
        printf("%d  ",n/power);      //打印最高位数
		n = n%power;         //去掉最高位
		power /= 10;         //一次循环结束,power/10
	}
	while(n!=0);                 //当n被赋值为0时停止循环              
 	printf("\n");
}

 

  • 12
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值