修改学生成绩c语言pta
时间: 2024-06-19 09:04:02 浏览: 121
要修改学生成绩,您需要先定义一个结构体来存储学生的信息和成绩。然后,您可以通过读取文件或从键盘输入来获取学生的信息和成绩,并将其存储到定义好的结构体中。接着,您可以通过对结构体中成绩的修改来实现修改学生成绩的功能。最后,您可以将修改后的成绩重新写回文件或打印输出到屏幕上。
以下是一个简单的示例代码,帮助您更好地理解如何修改学生成绩:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_STUDENTS 100
// 定义学生结构体
typedef struct {
char name[20]; // 学生姓名
int score; // 学生成绩
} Student;
int main() {
Student students[MAX_STUDENTS];
int numStudents = 0;
int i, j;
// 读取文件中的学生信息和成绩
FILE *fp = fopen("students.txt", "r");
if (fp == NULL) {
printf("无法打开文件。\n");
exit(1);
}
while (fscanf(fp, "%s %d", students[numStudents].name, &students[numStudents].score) != EOF) {
numStudents++;
}
fclose(fp);
// 显示学生信息和成绩
printf("学生信息:\n");
for (i = 0; i < numStudents; i++) {
printf("%s %d\n", students[i].name, students[i].score);
}
// 修改学生成绩
char name[20];
int newScore;
printf("请输入需要修改成绩的学生姓名:");
scanf("%s", name);
for (i = 0; i < numStudents; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("请输入新的成绩:");
scanf("%d", &newScore);
students[i].score = newScore;
break;
}
}
if (i == numStudents) {
printf("没有找到该学生。\n");
exit(1);
}
// 显示修改后的学生成绩
printf("修改后的学生信息:\n");
for (i = 0; i < numStudents; i++) {
printf("%s %d\n", students[i].name, students[i].score);
}
// 将修改后的成绩写回文件
fp = fopen("students.txt", "w");
if (fp == NULL) {
printf("无法打开文件。\n");
exit(1);
}
for (i = 0; i < numStudents; i++) {
fprintf(fp, "%s %d\n", students[i].name, students[i].score);
}
fclose(fp);
return 0;
}
阅读全文