题目要求:
给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。
90分以上为A,
81~89分为B,
70~ 79分为C,
60~69分为D,
60分以下为E。
C语言代码:
#include <stdio.h>
int main()
{
printf("输入成绩(0-100)");
int grade;
scanf("%d", &grade);
grade /=10;
switch ( grade ) {
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;
default:
printf("E\n");
break;
}
return 0;
}
python代码:
grade = eval(input("请输入成绩:"))
if 90 <= grade < 100:
print("A")
elif 80 <= grade < 90:
print("B")
elif 70 <= grade < 80:
print("C")
elif 60 <= grade < 70:
print("D")
elif 0 <= grade < 60:
print("E")
知识点备注:
python语言中可以进行链式比较。
例如
x = 9
if 8 < x < 10:
print("这个判断是正确的")
else:
print("这个判断是错误的")
我们运行会发现输出为
这个判断是正确的
我们改变判断顺序
x = 9
if 10 < x < 8:
print("这个判断是正确的")
else:
print("这个判断是错误的")
输出也是
这个判断是正确的
而对于c语言来说
#include <stdio.h>
int main()
{
int x=9;
if (8<x<10){
printf("这个判断是正确的");
}else{
printf("这个判断是错误的");
}
return 0;
}
会输出
这个判断是正确的
然而当我们改变判断顺序
#include <stdio.h>
int main()
{
int x=9;
if (10>x>8){
printf("这个判断是正确的");
}else{
printf("这个判断是错误的");
}
return 0;
}
则会输出
这个判断是错误的
这是因为在c语言内是无法进行链式比较的
相对于第一种判断,其实c语言先判断8<x,满足条件为真,结果为1,在判断1<10,为真则进入语句输出“这个判断是正确的”。同理,对于第二种判断,先判断10<x,为真结果为1,在判断1<8,为假,进入else语句输出“这个判断是错误的”。