注册 登录
编程论坛 新人交流区

关于switch的一道题

花剑 发布于 2007-10-31 21:58, 1164 次点击
我是大一新生,今天我们教了switch语句。下午我看参考书时碰到这样一道题:学生成绩等级这样分,0——59为不及格,60——79为及格,80——89为良好,90——100为优秀,随意输入一个成绩,输出该学生的成绩等级,要求用switch语句编译个程序。我已经想到把成绩除以10,以此来简化程序的方法。但书上说还有别的方法,实在想不出了,哪位前辈指点一二!?先谢谢了
31 回复
#2
为你呼吸2007-10-31 22:10

把SWITCH语句用IF语句代替就好,IF用于范围比较好用,SWITCH用于特定的几个数值比较好用

#3
花剑2007-10-31 22:16
可是题目上点名道姓的规定必须用switch语句啊,如果只用if不就不合题意了
#4
nuimqi2007-11-01 01:36
还有别的办法,是更简化的办法?
#5
xia0y12007-11-01 08:25
你哪个学校的呢?
#6
风萧水寒2007-11-01 08:59
如果硬要用switch的嘛,其实程序也很简单啊,就是要一百个case,就有点麻烦,程序都难得输啊

不知道还有谁能有switch只用几个case,弄出来的
#7
wx683025472007-11-01 14:48

把你的程序写出来看哈

#8
wx683025472007-11-01 14:51

先看哈你的程序是否还可以简单化

#9
兮涸2007-11-01 14:59
switch偶门也刚学~~~~呵~~~
#10
酷儿2007-11-01 16:38
用IF给分一下类,归为不及格0,及格1,良好2,优秀3,增加一个变量a,再用switch

可以吗?

[此贴子已经被作者于2007-11-1 16:39:54编辑过]

#11
fairy42007-11-01 17:12
除10,取整(忽略小數部分),只要判斷6 ,7,8,9,10這几個數

[此贴子已经被作者于2007-11-1 17:14:26编辑过]


#12
wengli422007-11-01 17:29
这个已经是最简单了的吧
#13
psp03752007-11-02 09:21

基础教程里面switch的举例,可以去看下

#14
yfcnic2007-11-02 10:36

同意十一楼的观点
我也做过这个题,用java做的
也是这么写的
没问题的

#15
lj_bc_cn2007-11-02 12:45

呵呵~~~~~~~~

#16
knightdh2007-11-02 13:10

路过......

#17
mawulin2007-11-02 14:25

这样的很简单嘛
main()
{
int a;

scanf("%d",&a);

if(a<60)

printf("不及格");

else
switch(a/10)
{case:6case:7 printf("及格");break;
case:8 printf("良好");break;
case:9case:10 printf("优秀");break;
}
}

#18
kakawei2007-11-05 23:55

对啊,用switch分类一下就行了.
#include<iostream>
using namespace std;
int main()
{
int number;
cin>>number;
int grade;
if(number>=0&&number<60)
grade=0;
if(number>=60&&number<80)
grade=1;
if(number>=80&&number<90)
grade=2;
if(number>=90&&number<=100)
grade=3;
switch(grade)
{
.......
}


#19
kr_zHaYj2007-11-06 07:58
都是很人,,,,
#20
wjcloudy2007-11-06 09:18
if + switch的方法我试过,比他原来的方法更复杂.用switch好想没有更简化的方法了~书上是说switch还有更简单的做法吗?
#21
wangfengLLD2007-11-06 09:31

用分数除以10取整这方法已经是蛮简单的了
硬要用更简单的方法感觉有点画蛇添足

#22
徐磊2007-11-06 18:47

好象没有更简单的方法了 用n/10是最简单的 好不 就用if 与 switch 结合起来一起使用

#23
xf128393562007-11-06 19:34

恩`
用几个case句做出来了啊`
你去试下嘛
`

#24
wdyllff2007-11-06 19:57
以下是引用酷儿在2007-11-1 16:38:33的发言:
用IF给分一下类,归为不及格0,及格1,良好2,优秀3,增加一个变量a,再用switch

可以吗?

赞同 不过还是 if 好用 啊 要不 麻烦!

#25
jsgyww5202007-11-06 20:48

switch不就行了

#26
yshtc2007-11-06 21:48

顶2楼的..我也是计算机系的大一新生...我书上怎么就只有一种SWITCH语句的编法呢,,书上也没说还有其他SWITCH语句的编法

#27
nameless8082007-11-06 22:02
回复:(花剑)关于switch的一道题
帮你顶下
#28
Debug992007-11-06 22:09
十一楼正解
鉴定完毕
#29
矿泉水wz2007-11-07 12:07

根据你这个题来说,,,用switch是最简单的了>>>>??
就在弄几个case了

#30
musicion81682007-11-08 11:18
IF(成绩<60)
i=0;
IF(60<=成绩<80)
i=1;
IF(80<=成绩<90)
i=2;
IF(90<=成绩)
i=3;
然后SWITCH(i)
{case 1:.......break;
case 2:.......break;
case 3:.......break;
case 4:.......break;}
#31
不离不弃2007-11-08 11:48
先用四个IF判断分数在那个段,用1,2,3,4表示不及格,及格,良,优秀。
然后用switch做,只用四个case。
1