学生成绩等级换算c语言switch(c语言实现成绩等级的转换)

http://www.itjxue.com  2023-01-29 14:15  来源:未知  点击次数: 

C语言中,从键盘输入一个学生成绩,用switch输出成绩和档次.(分类方法:90分及以上为"优秀",80-89分为"中等"

switch里有三种写法,第一种就是每个单独写出来如:(这种如果数据多的话不推荐,比如这题)

switch(score) {

case 90: case 91://...case 100:

//优秀。。

break;

case 80:case 81:case 82: //...case 89:

//中等。。

break;

}

第二种就是进行缩小范围,如:(这种如果数据分布很有规律就用,比如这题)

switch(score/10) {

case 10: case 9: //优秀..

break;

case 8: //中等

break;

}

第三种是函数的写法,这适用于数据分布无规律而不能进行缩小范围时,假如90~96为优秀,97~100为特优秀的话,可以这样,如:(这种适用于数据分布无规律)

int score_fun(int score)

{

if(score = 97)

return 1;

if(score = 90)

return 2;

if(score = 80)

return 3;

}

//....

switch(score_fun(score)) {

case 1: //特优秀。。

break;

case 2: //优秀。。

break;

case 3: //中等。。

break;

}

c语言作业 老师要求用switch 来判定学生分数等级

首先指出你的疑问:因为你的switch语句在最后一个if语句中,也就是说,当分数为s=0s=49时才执行switch语句,此时x==5。于是就执行case

5了。

修改:把switch语句与if语句并列。

更好的:你为什么用了if语句还要用switch语句呢,直接在if语句中输出不就行了吗?

还有输入quit退出的问题:建议使用scanf在接收字符串n。接收字符串n后判断是否等于”quit“,如果等于则break,退出while循环,否则往下执行。判断时可以用strcmp函数进行判断,也可以逐个的对字符串n进行判断。

为什么要用scanf而不用gets:当进行下一次的输入时,上次输入完分数后的回车会被这次的gets给吃掉;于是就会发现,当进行这次的输入时,”please

enter

your

name“,

”please

enter

your

score.“会同时出现。

下面是我帮你修改的程序,基本上没动。

#include

#include

int

main()

{

int

s,x;

char

n[5];

while(1)

{

printf("\n

please

enter

your

name:");

scanf("%s",

n);

if(n[0]=='q'

n[1]=='u'

n[2]=='i'

n[3]=='t')

{

break;

}

else

printf("\n

please

enter

your

score.");

scanf("%d",s);

if(s=80s=100)

{

x=1;

}

else

if(s=70s=79)

{

x=2;

}

else

if(s=60s=69)

{

x=3;

}

else

if(s=50s=59)

{

x=4;

}

else

if(s=0s=49)

{

x=5;

}

switch(x)

{

case

1:

printf("HD");

break;

case

2:

printf("D");

break;

case

3:

printf("C");

break;

case

4:

printf("C");

case

5:

printf("N");

break;

default:

printf("\n

please

enter

a

number

between

and

100");

}

}

return

0;

}

这是我自己随意修改的:

#include

#include

#include

int

main()

{

int

s,x;

char

n[5];

while(1)

{

printf("\n

please

enter

your

name:");

scanf("%s",

n);

if(strcmp(n,

"quit")==0)

{

break;

}

else

printf("\n

please

enter

your

score.");

scanf("%d",s);

if(s=80s=100)

{

printf("HD");

}

else

if(s=70s=79)

{

printf("D");

}

else

if(s=60s=69)

{

printf("C");

}

else

if(s=50s=59)

{

printf("C");

}

else

if(s=0s=49)

{

printf("N");

}

else

{

printf("\n

please

enter

a

number

between

and

100");

}

}

return

0;

}

C语言中从键盘输入一个学生成绩,如何用switch输出成绩和档次?

switch里有三种写法,第一种就是每个单独写出来如:(这种如果数据多的话不推荐,比如这题)\x0d\x0aswitch(score) {\x0d\x0a case 90: case 91://...case 100:\x0d\x0a //优秀。。\x0d\x0a break;\x0d\x0a case 80:case 81:case 82: //...case 89:\x0d\x0a //中等。。\x0d\x0a break;\x0d\x0a}\x0d\x0a第二种就是进行缩小范围,如:(这种如果数据分布很有规律就用,比如这题)\x0d\x0aswitch(score/10) {\x0d\x0a case 10: case 9: //优秀..\x0d\x0a break;\x0d\x0a case 8: //中等\x0d\x0a break;\x0d\x0a}\x0d\x0a第三种是函数的写法,这适用于数据分布无规律而不能进行缩小范围时,假如90~96为优秀,97~100为特优秀的话,可以这样,如:(这种适用于数据分布无规律)\x0d\x0aint score_fun(int score)\x0d\x0a{\x0d\x0a if(score = 97)\x0d\x0a return 1;\x0d\x0a if(score = 90)\x0d\x0a return 2;\x0d\x0a if(score = 80)\x0d\x0a return 3;\x0d\x0a}\x0d\x0a \x0d\x0a//....\x0d\x0a \x0d\x0aswitch(score_fun(score)) {\x0d\x0a case 1: //特优秀。。\x0d\x0a break;\x0d\x0a case 2: //优秀。。\x0d\x0a break;\x0d\x0a case 3: //中等。。\x0d\x0a break;\x0d\x0a}

C语言用switch语句进行成绩等级判断

C语言用switch语句进行成绩等级判断可以采用以下的代码:

main()

{int i,a;

scanf("%d",a);

i=a/10;

switch a

{case '10':

case '9': printf("A"); break;

case '8': printf("B"); break;

case '7': printf("C"); break;

case '6': printf("D");

else printf("E");

}

}

扩展资料:

Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择。以C语言来说,switch(开关语句)常和case break default一起使用。

C语言程序语句

Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断选择代码。其功能就是控制流程流转的。

直线翻译:switch语句,即“切换”语句;case即“情况”。

switch语句的语法如下(switch,case,break和default是关键字):

switch ( 变量表达式 )

{

case 常量1 :语句;break;

case 常量2 :语句;break;

case 常量3 :语句;break;

...

case 常量n:语句;break;

default :语句;break;

}

参考资料来源:百度百科-switch (计算机语言关键字)

输入百分制成绩对应输出优良中及格不及格的成绩等级c语言用swich表达?

代码如下:

#include stdio.h

int main()

{

int grade;

printf("请输入成绩: ");

scanf("%d", grade);

switch (grade / 10)

{

case 10:

case 9:

printf("优.\n");

break;

case 8:

printf("良.\n");

break;

case 7:

printf("中.\n");

break;

case 6:

printf("及格.\n");

break;

default:

printf("不及格.\n");

}

return 0;

}

(责任编辑:IT教学网)

更多

推荐微软认证文章