c语言百分制成绩转化成等级制 哪里有错


#include <stdio.h>
int main()
{
    int score, degree, No_stu, i = 1;
    printf("please input the No. of class:");
    scanf_s("%d", &No_stu);
    while (i <= No_stu);
    {

        printf("please input score:");
        scanf_s("%d", &score);
    }
    while (score < 0 || score >100)
    {
        printf("score is illegal!\n");
        continue;
    }
    degree = (int)(score / 10);
    switch (degree)
    {
    case 10:
        printf("corresponding degree is A\n");
        break;
    case 9:
        printf("corresponding degree is A\n");
        break;
    case 8:
        printf("corresponding degree is B\n");
        break;
    case 7:
        printf("corresponding degree is C\n");
        break;
    case 6:
        printf("corresponding degree is D\n");
        break;
    default:
        printf("corresponding degree is E\n");
        break;
    }
    i++;
    return 0;
}

将百分制成绩(用score表示)除以10之后再取整,一定得到0到10之间的数。

把代码14到40行代码写到第一个while()循环里面,另外按照我的理解,你设置的变量i代表的应该是类似学号,所以i++可以去掉

两个while循环都写成了死循环 i++放在了一个奇奇怪怪莫名其妙的位置

把第一个while函数的花括号,包括所有程序

基本语法问题,第一个循环死循环,看题主的大概意思,结束应该在return 0前面,此外第二个循环没有必要,一个if语句就可以搞定。