这个程序哪里出了问题呀?求大神们指点

img


初学者入门🥺🥺

1、修改定义的类型为char类型。

char grade;

2、if条件内少了等于的情况(11行)

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

3、switch()中的参数为grade

switch(grade)

4、case 后面的都是char类型,要用单引号

case 'A'

其他同理。
代码如下:

#include<stdio.h>
int main(void){
    char grade;
    scanf("%c",&grade);
    if('a'<=grade && 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\n");
    }
    return 0;
}

第一:grade的类型应该是char类型;
第二:if里面应该是('a'<=grade&&grade<='z')
第三:switch里面应该是switch(grade)
第四:case的A、B C D 应该带上单引号 : case 'A': case 'B'这样的

觉得有用的话采纳一下哈

你这不出问题才怪,float类型的不能变成char类型吧?只能int和char之间进行转换,float到int必须强转,还会损失精度