用c语言编写一个程序,输入 10 个学生的学号、姓名、3 门课程的成绩,求出总分最高的学生姓名并输出,并打成二维表
时间: 2024-02-21 08:58:57 浏览: 67
c语言课程设计-学生成绩管理系统
好的,下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
#define STUDENT_NUM 10 // 学生数量
#define COURSE_NUM 3 // 课程数
struct Student { // 学生结构体
char id[10]; // 学号
char name[20]; // 姓名
float scores[COURSE_NUM]; // 课程成绩
float total; // 总分
};
int main() {
struct Student students[STUDENT_NUM];
int max_index = 0; // 最高分学生的下标
// 输入学生信息和成绩
for (int i = 0; i < STUDENT_NUM; i++) {
printf("请输入第%d个学生的学号、姓名和三门课程的成绩:\n", i+1);
scanf("%s %s %f %f %f", students[i].id, students[i].name, &students[i].scores[0],
&students[i].scores[1], &students[i].scores[2]);
students[i].total = students[i].scores[0] + students[i].scores[1] + students[i].scores[2];
if (students[i].total > students[max_index].total) {
max_index = i;
}
}
// 输出表格
printf("学号\t\t姓名\t\t成绩1\t成绩2\t成绩3\t总分\n");
for (int i = 0; i < STUDENT_NUM; i++) {
printf("%s\t%s\t%.1f\t%.1f\t%.1f\t%.1f", students[i].id, students[i].name,
students[i].scores[0], students[i].scores[1], students[i].scores[2],
students[i].total);
if (i == max_index) {
printf("\t*");
}
printf("\n");
}
printf("*表示总分最高的学生\n");
return 0;
}
```
注意,这里使用了结构体来存储每个学生的信息,其中包括学号、姓名、三门课程的成绩以及总分。在输入时,计算每个学生的总分,并记录最高分学生的下标。最后,按照题目要求输出学生信息表格,其中用 * 标记出总分最高的学生。
希望能够帮到你!
阅读全文