C语言程序:学生成绩统计与排序(附源代码和截图)
我们不支持安装和编程环境的安装和配置,建议您自行参考网络上的教程来完成。以下是参考的C语言程序源代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100
#define MAX_NAME_LEN 20
#define MAX_COURSE_NUM 10
typedef struct {
char id[10];
char name[MAX_NAME_LEN];
int score[MAX_COURSE_NUM];
float avg_score;
} Student;
int main() {
int n, m;
printf("请输入学生人数和课程数:");
scanf("%d %d", &n, &m);
Student students[MAX_STUDENT_NUM];
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的学号、姓名、各科成绩:\n", i + 1);
scanf("%s %s", students[i].id, students[i].name);
for (int j = 0; j < m; j++) {
scanf("%d", &students[i].score[j]);
students[i].avg_score += students[i].score[j];
}
students[i].avg_score /= m;
}
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (students[j].avg_score < students[j + 1].avg_score) {
Student tmp = students[j];
students[j] = students[j + 1];
students[j + 1] = tmp;
}
}
}
printf("\n按照平均分排序输出学生信息:\n");
printf("学号\t姓名\t");
for (int i = 0; i < m; i++) {
printf("成绩%d\t", i + 1);
}
printf("平均分\n");
for (int i = 0; i < n; i++) {
printf("%s\t%s\t", students[i].id, students[i].name);
for (int j = 0; j < m; j++) {
printf("%d\t", students[i].score[j]);
}
printf("%.2f\n", students[i].avg_score);
}
return 0;
}
截图如下:

原文地址: https://www.cveoy.top/t/topic/nVo9 著作权归作者所有。请勿转载和采集!