这个用C语言怎样解答?

主要是我写的代码太乱了,感觉我的基础并不太好,有思路但并不成功,还麻烦写一下,有注释更好了

img

img


#include <stdio.h>  // 引入标准输入输出头文件
 
int main() {
    float grade;  // 定义变量用于存储学生的期末成绩
    int passCount = 0, failCount = 0, i = 1;  // 定义计数器以统计及格和不及格的人数,同时初始化为0
 
    printf("请输入所有学生的期末成绩:"); // 提示输入
 
    while (scanf("%f", &grade) == 1 && grade != -1) {  // 当输入的成绩是有效数字且不等于-1时继续循环
        printf("NO.%d 期末成绩:%.1f 考核成绩:", i, grade);  // 输出学生的期末成绩和编号,并用 %.1f 指定小数点后一位精度
 
        // 根据成绩的不同区间输出对应的考核等级
        if (grade >= 90) {
            printf("A\n");
        } else if (grade >= 80) {
            printf("B\n");
        } else if (grade >= 60) {
            printf("C\n");
        } else {
            printf("D\n");
        }
 
        // 统计及格和不及格的人数
        if (grade >= 60) {
            passCount++;
        } else {
            failCount++;
        }
 
        i++;  // 编号加1
    }
 
    // 输出及格和不及格的人数
    printf("及格人数:%d,不及格人数:%d\n", passCount, failCount);
 
    return 0;
}



不懂的地方提出来哈

img


#include <stdio.h> // 引入标准输入输出头文件

int main() { // 程序入口
    int pass = 0; // 定义及格人数变量并初始化为0
    int fail = 0; // 定义不及格人数变量并初始化为0
    float score; // 定义学生期末成绩变量
    int i=1;

    printf("请输入所有学生的期末成绩:"); // 输出提示信息
    while (scanf("%f", &score) == 1 && score >= 0) { // 循环读取用户输入的成绩,直到输入非法成绩或负数
        if (score >= 90) { // 如果成绩大于等于90分
            printf("NO.%d  期末成绩:%.1f,考核等级:A\n", i++,score); // 输出考核等级为A
            pass++; // 及格人数加1
        } else if (score >= 80) { // 如果成绩大于等于80分
            printf("NO.%d  期末成绩:%.1f,考核等级:B\n",i++, score); // 输出考核等级为B
            pass++; // 及格人数加1
        } else if (score >= 70) { // 如果成绩大于等于70分
            printf("NO.%d  期末成绩:%.1f,考核等级:C\n", i++,score); // 输出考核等级为C
            pass++; // 及格人数加1
        } else if (score >= 60) { // 如果成绩大于等于60分
            printf("NO.%d  期末成绩:%.1f,考核等级:D\n",i++, score); // 输出考核等级为D
            pass++; // 及格人数加1
        } else { // 否则
            printf("NO.%d  期末成绩:%.1f,考核等级:F\n", i++,score); // 输出考核等级为F
            fail++; // 不及格人数加1
        }
    }

    printf("及格人数:%d。不及格人数:%d\n", pass, fail); // 输出统计结果

    return 0; // 程序结束
}
#include <stdio.h>

int main() {
    float score; // 学生成绩
    int passed = 0, failed = 0; // 及格和不及格人数计数器

    printf("输入所有学生的期末成绩(输入一个非法成绩结束输入):\n");
    while (scanf("%f", &score) == 1) { // 当输入一个浮点数时继续
        if (score < 0 || score > 100) { // 如果成绩非法则跳出循环
            break;
        }

        // 计算考核等级
        char grade; // 考核等级
        if (score >= 90) { // 如果成绩大于等于90,考核等级为A
            grade = 'A';
        } else if (score >= 80) { // 如果成绩大于等于80,考核等级为B
            grade = 'B';
        } else if (score >= 70) { // 如果成绩大于等于70,考核等级为C
            grade = 'C';
        } else if (score >= 60) { // 如果成绩大于等于60,考核等级为D
            grade = 'D';
        } else { // 如果成绩小于60,考核等级为E
            grade = 'E';
        }

        // 输出成绩和考核等级
        printf("No.%d 期末成绩:%.1f 考核成绩:%c\n", passed + failed + 1, score, grade);

        // 更新及格和不及格人数计数器
        if (score >= 60) { // 如果成绩大于等于60,及格人数+1
            passed++;
        } else { // 否则,不及格人数+1
            failed++;
        }
    }

    // 输出统计结果
    printf("及格人数:%d,不及格人数:%d\n", passed, failed);

    return 0;
}