编写程序,初始化10名学生的基本信息,包括学号、姓名、三科(高数、英语、程序设计)成绩,分别计算每名学生的总分,并按个人总分对学生降序排序,输出排序后的学生信息。给出完整C代码
时间: 2024-03-22 08:37:14 浏览: 55
C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。
好的,以下是一个完整的 C 语言程序,实现了您要求的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char id[16];
char name[32];
float score_math;
float score_english;
float score_programming;
float total_score;
} Student;
// 初始化学生信息
void init_students(Student students[], int n) {
for (int i = 0; i < n; i++) {
Student student;
printf("请输入第%d个学生的信息:\n", i + 1);
printf("学号:");
scanf("%s", student.id);
printf("姓名:");
scanf("%s", student.name);
printf("高数成绩:");
scanf("%f", &student.score_math);
printf("英语成绩:");
scanf("%f", &student.score_english);
printf("程序设计成绩:");
scanf("%f", &student.score_programming);
student.total_score = student.score_math + student.score_english + student.score_programming;
students[i] = student;
}
}
// 按照总分排序
void sort_students(Student students[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (students[i].total_score < students[j].total_score) {
Student temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
}
// 输出学生信息
void print_students(Student students[], int n) {
printf("按照总分降序排序的学生信息如下:\n");
for (int i = 0; i < n; i++) {
printf("学号:%s,姓名:%s,高数成绩:%g,英语成绩:%g,程序设计成绩:%g,总分:%g\n",
students[i].id, students[i].name, students[i].score_math, students[i].score_english, students[i].score_programming, students[i].total_score);
}
}
int main() {
const int n = 10;
Student students[n];
init_students(students, n);
sort_students(students, n);
print_students(students, n);
return 0;
}
```
运行上述代码,您将依次输入10个学生的信息,程序将按照总分降序排列学生信息并输出,输出结果类似于下面的样式:
```
按照总分降序排序的学生信息如下:
学号:001,姓名:Alice,高数成绩:90,英语成绩:85,程序设计成绩:95,总分:270
学号:005,姓名:Eva,高数成绩:90,英语成绩:90,程序设计成绩:90,总分:270
学号:008,姓名:Henry,高数成绩:85,英语成绩:95,程序设计成绩:90,总分:270
学号:010,姓名:Jack,高数成绩:80,英语成绩:90,程序设计成绩:95,总分:265
学号:003,姓名:Charlie,高数成绩:95,英语成绩:80,程序设计成绩:90,总分:265
学号:004,姓名:David,高数成绩:85,英语成绩:95,程序设计成绩:80,总分:260
学号:006,姓名:Frank,高数成绩:80,英语成绩:85,程序设计成绩:95,总分:260
学号:007,姓名:Grace,高数成绩:95,英语成绩:80,程序设计成绩:85,总分:260
学号:002,姓名:Bob,高数成绩:80,英语成绩:90,程序设计成绩:85,总分:255
学号:009,姓名:Ivy,高数成绩:90,英语成绩:85,程序设计成绩:80,总分:255
```
希望这个示例程序能够对您有所帮助!
阅读全文