从终端读入一个百分制整数。依据如下方式判断其成绩等级。90~100分段,判为优秀;70~89分段,判为良好;60~69,判为及格;60分以下,判为不及格;其它分数段,判为输入错误。要求用 switch/case 语句实现。
#include<stdio.h>
#include<math.h>
int main(){
int x;
scanf("%d",&x);
switch(x/10){
case 10:
printf("优秀\n");
break;
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;
}
在C语言中,switch/case是一种流程控制语句,用于根据不同的条件执行不同的操作。
switch/case语句的执行流程如下:
-
首先,计算expression表达式的值。
-
根据expression的值,选择一个case语句块进行执行。
-
执行选中的case语句块中的语句,直到遇到break语句为止。
如果没有匹配的case语句,则执行default语句块中的语句(如果有)。
需要注意的是,每个case语句块中必须以break语句结束,否则会继续执行下一个case语句块中的语句,直到遇到break语句为止。如果所有的case语句块都没有匹配,且没有default语句块,则switch/case语句不会执行任何操作。
switch/case语句中的expression表达式必须是一个整型或字符型表达式,每个case的value必须是一个整型或字符型常量,不能是变量或表达式。当有多个case值相同时,可以使用多个case标签共用一个语句块.
在C语言中,switch/case语句通常用于根据不同的情况执行不同的代码块。除了使用switch/case语句,还可以使用以下函数来实现相同的功能:
-
if/else if语句:if/else if语句可以根据不同的情况执行不同的代码块,类似于switch/case语句。但与switch/case语句不同的是,if/else if语句是一种逐一判断的方法,而不是通过跳转到不同的分支来执行代码块。因此,当情况较少时,使用if/else if语句可以取代switch/case语句。
-
字符串比较函数:如果switch/case语句的分支条件是字符串类型,可以使用字符串比较函数来代替switch/case语句。例如,使用strcmp()函数可以比较两个字符串是否相等,从而执行相应的代码块。
-
数组和循环结构:当情况较多时,可以使用数组和循环结构来代替switch/case语句。例如,可以使用一个数组来存储不同情况对应的代码块,然后通过循环结构根据输入值的不同来访问数组中的不同元素。
总之,在C语言中,switch/case语句是一种常用的流程控制语句,但在某些情况下,也可以使用其他函数或数据结构来代替switch/case语句,以实现相同的功能。