C语言 - 巧妙运用/与%运算符,分离各位数

  • 解题思路整理:

1.问题表现形式:输入一个正三位整数,输出其逆序数。

2.解题套路:灵活使用/与%的运算符特征

/ : 取其整数部分

%:取其余数部分

e.g :程序每次读入一个正3位数,然后输出按位逆序的数字。
注意:当输入的数字含有结尾的0时,输出不应带有前导的0。
比如输入700,输出应是7。

输入格式:
每个测试是一个3位的正整数。

输出格式:
输出按位逆序的数。

输入样例:
123

输出样例:
321

本题的关键点:分离各位数

#include<stdio.h>
int main(void)
{
	int num;//由题可知,只能定义一个正三位整数
	
	scanf("%d", &num);//先将这个正三位整数输入 
	
	//对这个三位数进行拆分
	int a, b, c;//a:百位数,b:十位数,c:个位数
	
	//step 1:拆分百位数a
	a = num / 100;//利用:"/"运算只取整数的特点
	
	//step 2:拆分个位数c 
	c = num % 10;//利用:"%"运算只取余数的特点 
	
	//step 3:拆分十位数b
	
	//b = (num % 100) / 10;//先用"%"取余数,再用"%"取整数 //method 1
	b = (num / 10) % 10;//先用"/"取整数,再用"%"取余数 //method 2
	
	printf("%d\n", 100 * c + 10 * b + a); 
	 
	return 0;
}

总结:(实际问题中无需运用以下结论,只需取一个特例试验即可)

1.分离首位数的方法:直接 / (10^所在位数)

e.g 1: 712 / 100;(100 = 10^3)

2.分离末位数的方法:直接 % (10^高一格的位数)

e.g 2:712 % 10 = 2

3.分离中间数的方法:取特例实验

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值