怎么用程序设计:输入10名学生高等数学、英语、物理课成绩,计算每名学生3门课的平均成绩,输出每名学生各科成绩及平均成绩,并输出3门课程的优秀率

注:90及90分以上为优秀,优秀率:100*(优秀的人数/总人数)可以定义一个二维数组,循环输入成绩,统计并输出统计结果。平均成绩用浮点数组定义,输出1位小数,优秀率用浮点数组定义,输出2位小数。

望采纳,谢谢

#include <stdio.h>

int main() {
    int n = 10;
    float scores[n][3];
    float averages[n], excellent_rates[3];

    // 循环输入成绩
    for (int i = 0; i < n; i++) {
        printf("请输入第 %d 名学生的高等数学、英语、物理课成绩:\n", i+1);
        scanf("%f%f%f", &scores[i][0], &scores[i][1], &scores[i][2]);

        // 计算平均成绩
        averages[i] = (scores[i][0] + scores[i][1] + scores[i][2]) / 3.0;
    }

    // 统计优秀率
    int excellent_counts[3] = {0, 0, 0};
    for (int i = 0; i < n; i++) {
        if (scores[i][0] >= 90) {
            excellent_counts[0]++;
        }
        if (scores[i][1] >= 90) {
            excellent_counts[1]++;
        }
        if (scores[i][2] >= 90) {
            excellent_counts[2]++;
        }
    }
    excellent_rates[0] = excellent_counts[0] * 100.0 / n;
    excellent_rates[1] = excellent_counts[1] * 100.0 / n;
    excellent_rates[2] = excellent_counts[2] * 100.0 / n;

    // 输出结果
    printf("\n");
    printf("学号\t高等数学\t英语\t物理\t平均成绩\n");
    for (int i = 0; i < n; i++) {
        printf("%d\t%.1f\t\t%.1f\t%.1f\t%.1f\n", i+1, scores[i][0], scores[i][1], scores[i][2], averages[i]);
    }
    printf("\n");
    printf("优秀率:高等数学 %.2f%%,英语 %.2f%%,物理 %.2f%%\n", excellent_rates[0], excellent_rates[1], excellent_rates[2]);

    return 0;
}

img