求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; } // ... 其他函数定义 ...解决 无用评论 打赏 举报