有一个问题想问各位,问题在双斜杠后面

#include<stdio.h>

int main()
{
    
    float score; 
    printf("请输入成绩:");
    scanf("%f",&score);
    
    if(score>100||score<0)
    {
        printf("输入成绩错误"); 
    }
    else
    {
        score=(int)score/10;  //为什么这串代码使用了强制转换还是无法继续进行 
    }    
    switch(score)
    { 
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:printf("不及格");break;
        case 6:printf("及格");break;
        case 7:printf("中等"); break;
        case 8:printf("良好");break;
        case 9:
        case 10:printf("优秀");break;
     } 
     return 0;
}

当赋值表达式两边的数据类型不一致时,以左边的数据类型为准,右边的数据类型向左边看齐。
即右边数据类型所占字节数如int,小于左边float所占字节数,则右边要转为float型数据。
建议再定义一个整型变量,对score进行强制转换后再赋值。

score是浮点类型的,case的常量表达式是整型的,所以不行,你强转了,score还是浮点类型没有变

score=(int)score/10;,是将score的类型强制装换为整型后给出,但score的类型没有发生改变

将score/10用int i变量来就好了