C语言入门程序改错题?

如题所述

第1个回答  2020-11-04
3行:改成char grade;
6行:改成 if(grade>='a' && grade<='z')
9~13行,case后面的字母改成带单引号 'A' 'B' 'C''D''E'
9行后面加上break;
10行后面加上break;追问

为什么 if(grade>='a' && grade<='z')也包含了大写字母A-Z?求解答

追答

记得点一下采纳按钮哦
if(grade>='a' && grade<='z'),是指如果输入的字符是小写字母a~z,就变成大写字母。

并不是包含了大写字母。
这样转换以后,switch里面可以统一按照大写字母判断。
减32就是变成对应的大写字母。

追问

你这么一解释我明白了,谢谢

本回答被提问者采纳
第2个回答  2020-11-04

#include<stdio.h>

int main (void){

char  grade;

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

scanf("%c" , &grade) ;

if( 'a'<grade<'z')

grade=grade- 32;

switch(grade)

{

case A: printf ("90-100\n"); break;

case B: printf("80-89\n") ; break;

case c:printf("70-79\n") ; break;

case D:printf("60-69\n" ) ; break;

case E:printf ("<60\n") ; break;

default:printf ( "error") ;

}

return 0;

}

相似回答