C语言利用嵌套实现switch对if语句的简单替换(要点:利用switch判断输入数值的正负)

题目如上↑

a>=0部分的替换挺简单,不多赘述,代码如下:

c=a%10;
switch(c)//c为上方a对10求整结果,即a的十位
				{
					case 0:
					case 1:
					case 2:
						m=1;//十位为0,1,2则m=1
						break;
					case 3:
						m=2;//十位为3则m=2
						break;
					case 4:
						m=3;//十位为4则m=3
						break;
					case 5:
						m=4;//十位为5则m=4
						break;
					default:
						m=5;//十位为6及以上则m=5
						break;
				}

 负数部分不用if难以区分出(由题可知若a为负数,则m恒为1)

我的思路(逆推)是(单就正负判断):

1.用switch区分正负;

2.将a对2取余(a%2)得出1和-1(需要a为奇数);

3.因此先判断a的奇偶性,若a为偶数则使其+1。

所以说判断a的正负的步骤如下:

1.判断a的奇偶性,若a为偶数则使其+1(变成奇

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值