c语言编写一个程序输入5个学生的学号姓名三门课程的成绩,以表的形式输出所有同学成绩和总分最高的学生
时间: 2024-02-21 09:59:32 浏览: 72
好的,以下是一个简单的 C 语言程序,可以实现您的需求:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 5
#define MAX_NAME_LENGTH 20
struct student {
char id[10];
char name[MAX_NAME_LENGTH];
int score1;
int score2;
int score3;
int total_score;
};
int main() {
struct student students[MAX_STUDENTS];
int i;
int max_score = 0;
int max_index = 0;
// 输入学生信息
for (i = 0; i < MAX_STUDENTS; i++) {
printf("请输入第 %d 个学生的学号:", i+1);
scanf("%s", students[i].id);
printf("请输入第 %d 个学生的姓名:", i+1);
scanf("%s", students[i].name);
printf("请输入第 %d 个学生的第一门课程成绩:", i+1);
scanf("%d", &students[i].score1);
printf("请输入第 %d 个学生的第二门课程成绩:", i+1);
scanf("%d", &students[i].score2);
printf("请输入第 %d 个学生的第三门课程成绩:", i+1);
scanf("%d", &students[i].score3);
students[i].total_score = students[i].score1 + students[i].score2 + students[i].score3;
printf("\n");
}
// 输出学生信息表格
printf("------------------------------------------------------------\n");
printf("| 学号 | 姓名 | 课程1 | 课程2 | 课程3 | 总分 |\n");
printf("------------------------------------------------------------\n");
for (i = 0; i < MAX_STUDENTS; i++) {
printf("| %-5s | %-5s | %-5d | %-5d | %-5d | %-5d |\n",
students[i].id, students[i].name, students[i].score1, students[i].score2, students[i].score3, students[i].total_score);
if (students[i].total_score > max_score) {
max_score = students[i].total_score;
max_index = i;
}
}
printf("------------------------------------------------------------\n");
// 输出总分最高的学生信息
printf("总分最高的学生是:\n");
printf("学号:%s\n", students[max_index].id);
printf("姓名:%s\n", students[max_index].name);
printf("总分:%d\n", students[max_index].total_score);
return 0;
}
```
您可以将上述代码复制到 C 语言编译器中运行,测试其效果。
阅读全文