‘壹’ c语言用switch语句进行成绩等级判断
摘要 C语言用switch语句进行成绩等级判断可以采用以下的代码:
‘贰’ C语言用switch函数输出成绩等级,怎么无法输出
你好!你的switch
语句的花括号应该打在default:g='F';break;后面,即printf("%c\n",g);
return
0;应该在switch语句外面,否则每次执行switch语句后都break出来了,不会执行打印输出语句!
改动后程序:
#include
<stdio.h>
main()
{
int
s;
char
g;
scanf("%d",&s);
switch((int)s/10){
case
10:g='A';break;
case
9:g='B';break;
case
8:g='C';break;
case
7:g='D';break;
case
6:g='E';break;
default:g='F';break;
}
printf("%c\n",g);
return
0;
}
‘叁’ 用switch语句怎样判断成绩的等级
例:用switch来判断用户输入的成绩应该属于哪个范围。60一下不及格,60-70及格,70-80良好,80-90优秀,90以上学霸
<script type="text/javascript">
var score=parseInt(prompt('请输入你的成绩'));
switch(true){
case score>=0&&score<60:
alert('不及格');
break;
case score>60&&score<=70:
alert('及格');
break;
case score>70&&score<=80:
alert('良好');
break
case score>80&&score<=90:
alert('优秀');
break;
case score>90&&score<=100:
alert('优秀');
break;
default:
alert('输入不合法');
}
</script>
(3)c语言switch语句求成绩等级扩展阅读:
代码知识总结:
1.if语句的嵌套要注意大括号的一一对应,实现if--else的正确匹配;
2.switch...case..break语句不要误丢break,case后面跟的是变量,且case后面要加空格;
3.运算符要注意优先级;
4.缩进格式并不能暗示else的匹配;
5.在if和else后面总要用到{},即使只有一条语句。
‘肆’ C语言中从键盘输入一个学生成绩,如何用switch输出成绩和档次
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>=0&&s<=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>=80&&s<=100)
{
x=1;
}
else
if(s>=70&&s<=79)
{
x=2;
}
else
if(s>=60&&s<=69)
{
x=3;
}
else
if(s>=50&&s<=59)
{
x=4;
}
else
if(s>=0&&s<=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
0
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>=80&&s<=100)
{
printf("HD");
}
else
if(s>=70&&s<=79)
{
printf("D");
}
else
if(s>=60&&s<=69)
{
printf("C");
}
else
if(s>=50&&s<=59)
{
printf("C");
}
else
if(s>=0&&s<=49)
{
printf("N");
}
else
{
printf("\n
please
enter
a
number
between
0
and
100");
}
}
return
0;
}
‘陆’ 如何用C语言中switch语句编写学生成绩问题
#include<stdio.h>
void
main()
{
double
score;
printf("请输入分数:\n");
scanf("%lf",&score);
switch((int)(score/10))//switch((int)score/10)出现严重错误,switch(((int)score)/10)出现严重错误,
{
case
10:
case
9:printf("A(最好)\n");break;
case
8:printf("B(优秀)\n");break;
case
7:printf("C(良好)\n");break;
case
6:printf("D(及格)\n");break;
case
5:
case
4:
case
3:
case
2:
case
1:
case
0:printf("E(不及格)\n");break;
default:printf("Error!\n");
}
}
例二:
#include<stdio.h>
void
main()
{
char
rank;
printf("请输入分数等级:(A、B、C、D、E)\n");
scanf("%c",&rank);
switch(rank)//switch((int)score/10)出现严重错误,switch(((int)score)/10)出现严重错误,
{
case
'A':printf("A(90~100)\n");break;
case
'B':printf("B(80~89)\n");break;
case
'C':printf("C(70~79)\n");break;
case
'D':printf("D(60~69)\n");break;
case
'E':printf("E(0~59)\n");break;
default:printf("error!\n");break;
}
}
‘柒’ c语言switch语句,输入一个成绩,划分等级,请问下面代码哪里错了
scanf("%f",&grade);
改成
scanf("%d",&grade);
%f代表你输入的是浮点数,浮点数无法和整数直接进行相等比较,例如1.0在计算机里是不等于1的
‘捌’ C语言编程:采用switch语句编写成绩等级:100-90分为A,75-89为B,65-74为C,
摘要 main(){
‘玖’ 用switch语句统计各等级成绩的个数
代码如下:
switch(grade)
{
case '优':
System.out.println(5);
break;
case '良':
System.out.println(4);
break;
case '中':
System.out.println(3);
break;
case '差':
System.out.println(2);
break;
default:
System.out.println("输入的等级错误");
break;
}
(9)c语言switch语句求成绩等级扩展阅读
switch 语句必须遵循下面的规则:
1、switch 语句中的 expression 必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。
2、在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
3、case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
4、当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
5、当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
6、不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
7、一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。
‘拾’ 输入一个百分制成绩,利用switch语句编写程序,要求输出成绩等级A B C D,E。90以上为A
程序:
int main()
{int n;
scanf("%d",&n);
switch(n/10)
{case 10:case 9: printf("A "); break;
case 8: printf("B "); break;
case 7: printf("C "); break;
case 6: printf("D "); break;
default:printf("E ");
}
return 0;
}
switch语句和具有同样表达式的一系列的IF语句相似。很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。这正是switch语句的用途。
遵守switch语句规则
switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:
只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
switch()的参数类型不能为实型 。
case标签必须是常量表达式(constantExpression),如42或者'4'。
case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。
以上内容参考:网络-switch