首页 新闻 会员 周边 捐助

C语言中的问题

0
悬赏园豆:5 [已解决问题] 解决于 2014-04-28 11:15

C语言中输入一个数看看能不能被3,5,7整除若能则指出 被哪个或哪个几个数整除要用switch做

先问后学的主页 先问后学 | 初学一级 | 园豆:127
提问于:2010-11-22 15:53
< >
分享
最佳答案
1

你可以这样,

int flag = 0;

char s* = NULL;

if(n % 7 == 0) flag  |= 4;

if(n % 5 == 0) flag |= 2;

if(n % 3 == 0) flag |= 1;

switch(flag)

{

case 0: s = "NO"; break;

case 1: s = "3"; break;

case 2: s = "5"; break;

case 3: s = "3, 5"; break;

case 4: s = "7"; break;

case 5: s = "3, 7"; break;

case 6: s = "5, 7"; break;

case 7: s = "3, 5, 7"; break;

}

printf("%d can be devided by %s.\n", n, s);

 

我纯属应你要求用switch才这么写,比较蛋疼!!!

收获园豆:5
hoodlum1980 | 小虾三级 |园豆:573 | 2012-06-07 17:55
其他回答(3)
0

为什么一定要switch?

最简单的逐个判断不就行了?

顾晓北 | 园豆:10898 (专家六级) | 2010-11-22 16:50
0

给你推荐一个简单的算法:

输入一个数

首先,看它能否被15整除?如果可以,则说明3和5都可以把它整除,只需要再判断7是否能把它整除;

然后,如果它不能被15整除,则判断它是否可以被3整除?如果可以被3整除,说明它不能被5整除,只需要看能否被7整除; 如果它不能被3整除,则需要看它能否被5 和 7 整除。

这样做好像比一个一个都去除要好一些。。。

 

 

Tester Chen | 园豆:1690 (小虾三级) | 2010-11-22 17:05
0

那就分别case 105,35,21,15,7,5,3了,试试行不

喬喬AI | 园豆:996 (小虾三级) | 2011-10-23 18:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册