C语言学生的基本信息包括学号、姓名及总分。从in.txt中读取5名学生的基本信息,输出 总分最高的学生的姓名及总分,并将结果保存在out.txt中案例示范
时间: 2024-05-16 13:18:24 浏览: 89
以下是一个简单的C语言程序,可以实现读取5名学生的基本信息,并输出总分最高的学生的姓名及总分,并将结果保存在out.txt中。
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 5
#define MAX_NAME_LEN 20
typedef struct {
int id;
char name[MAX_NAME_LEN];
int score;
} student_t;
int main() {
student_t students[MAX_STUDENTS];
int i, max_score = 0, max_score_index = 0;
// 从in.txt中读取学生信息
FILE *fp = fopen("in.txt", "r");
for (i = 0; i < MAX_STUDENTS; i++) {
fscanf(fp, "%d %s %d", &students[i].id, students[i].name, &students[i].score);
}
fclose(fp);
// 查找总分最高的学生
for (i = 0; i < MAX_STUDENTS; i++) {
if (students[i].score > max_score) {
max_score = students[i].score;
max_score_index = i;
}
}
// 输出结果到控制台和out.txt
fp = fopen("out.txt", "w");
printf("总分最高的学生是%s,总分为%d\n", students[max_score_index].name, max_score);
fprintf(fp, "总分最高的学生是%s,总分为%d\n", students[max_score_index].name, max_score);
fclose(fp);
return 0;
}
```
注意,这里的程序假设in.txt中每一行的格式都是“学号 姓名 总分”,且每个学生的姓名长度不超过20个字符。如果实际情况不符合这个假设,需要根据实际情况修改程序。