Chu279 2021-05-12 13:59 采纳率: 10%
浏览 201

求C语言的题目! 某班有最多不超过60人(具体人数n由键盘输入)参加C语言程序设计课程的考试,用一

求C语言的题目! 某班有最多不超过60人(具体人数n由键盘输入)参加C语言程序设计课程的考试,用一维数组编程实现以下功能: (1)输入学生的考试成绩。(2)输出学生成绩。 (3)计算平均分。 (4)输出最高分和最低分。 (5)统计不及格人数并计算及格率。 (6)按成绩从高到低排序。 具体要求: (1)每个功能为一个独立的函数。 (2)输入输出要有提示信息。 (3)对程序中的主要变量和语句用注释形式加以说明。 (4)尝试做一个菜单供用户选择,接收用户的输入选项,然后根据用户输入的选项执行相应的操作。用户可以多次选择执行不同的功能,直到选择“退出”才终止程序的运行。菜单示例如下: 1.输入学生的考试成绩 2.输出学生成绩 3.计算平均分 4.输出最高分和最低分 5.统计不及格人数并计算及格率 6.按成绩从高到低排序 0.退出 请选择:
  • 写回答

1条回答 默认 最新

  • MUKAMO 2024-06-25 15:24
    关注
    
    #include <stdio.h>  
    #include <stdlib.h>  
      
    #define MAX_STUDENTS 60  
      
    // 声明函数  
    void inputScores(int scores[], int n);  
    void outputScores(int scores[], int n);  
    float calculateAverage(int scores[], int n);  
    void outputMinMax(int scores[], int n);  
    void countFailedAndPassRate(int scores[], int n);  
    void sortScoresDescending(int scores[], int n);  
    void displayMenu();  
    int getUserChoice();  
      
    int main() {  
        int scores[MAX_STUDENTS];  
        int n, choice;  
      
        // 获取学生人数  
        printf("请输入学生人数(不超过60人): ");  
        scanf("%d", &n);  
        if (n > MAX_STUDENTS || n <= 0) {  
            printf("输入错误,人数应在1到60之间。\n");  
            return 1;  
        }  
      
        // 显示菜单并处理用户选择  
        do {  
            displayMenu();  
            choice = getUserChoice();  
      
            switch (choice) {  
                case 1:  
                    inputScores(scores, n);  
                    break;  
                case 2:  
                    outputScores(scores, n);  
                    break;  
                case 3:  
                    printf("平均分: %.2f\n", calculateAverage(scores, n));  
                    break;  
                case 4:  
                    outputMinMax(scores, n);  
                    break;  
                case 5:  
                    countFailedAndPassRate(scores, n);  
                    break;  
                case 6:  
                    sortScoresDescending(scores, n);  
                    outputScores(scores, n); // 输出排序后的成绩  
                    break;  
                case 0:  
                    printf("程序已退出。\n");  
                    break;  
                default:  
                    printf("无效的选择,请重新选择。\n");  
            }  
        } while (choice != 0);  
      
        return 0;  
    }  
      
    // 函数定义...  
      
    // 输入学生成绩  
    void inputScores(int scores[], int n) {  
        for (int i = 0; i < n; i++) {  
            printf("请输入第%d个学生的成绩: ", i + 1);  
            scanf("%d", &scores[i]);  
        }  
    }  
      
    // 其余函数(如输出、计算、排序等)的定义在此处省略...  
      
    // 显示菜单  
    void displayMenu() {  
        printf("\n请选择:\n");  
        printf("1.输入学生的考试成绩\n");  
        printf("2.输出学生成绩\n");  
        printf("3.计算平均分\n");  
        printf("4.输出最高分和最低分\n");  
        printf("5.统计不及格人数并计算及格率\n");  
        printf("6.按成绩从高到低排序\n");  
        printf("0.退出\n");  
    }  
      
    // 获取用户选择  
    int getUserChoice() {  
        int choice;  
        printf("请选择:");  
        scanf("%d", &choice);  
        return choice;  
    }  
      
    // ... 其他函数定义 ...
    
    评论

报告相同问题?