用C语言设计创建“成绩.txt”文档,并输入学生的姓名和成绩然后从键盘输入学生姓名,返回该学生成绩。如果输入的名字在文档中不存在,提示输入错误
时间: 2024-03-07 07:50:17 浏览: 71
好的,我会为您提供一份C语言的代码,实现创建“成绩.txt”文档、输入学生的姓名和成绩、从键盘输入学生姓名并返回该学生成绩、以及在输入的名字在文档中不存在时,提示输入错误。以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NUM_STUDENTS 100
typedef struct {
char name[50];
float score;
} student;
int main() {
FILE *fp;
student students[MAX_NUM_STUDENTS];
int num_students = 0;
char input_name[50];
int i;
// 打开文件
fp = fopen("成绩.txt", "w");
// 输入学生姓名和成绩
while (num_students < MAX_NUM_STUDENTS) {
printf("请输入第%d个学生的姓名和成绩(用空格分隔,输入0结束):", num_students + 1);
scanf("%s", students[num_students].name);
if (strcmp(students[num_students].name, "0") == 0) {
break;
}
scanf("%f", &students[num_students].score);
fprintf(fp, "%s %.1f\n", students[num_students].name, students[num_students].score);
num_students++;
}
// 关闭文件
fclose(fp);
// 从键盘输入学生姓名
printf("请输入学生姓名:");
scanf("%s", input_name);
// 查找该学生的成绩
for (i = 0; i < num_students; i++) {
if (strcmp(students[i].name, input_name) == 0) {
printf("%s的成绩为%.1f\n", students[i].name, students[i].score);
break;
}
}
if (i == num_students) {
printf("输入错误,该学生不存在!\n");
}
return 0;
}
```
在上面的代码中,我们使用了一个`student`结构体来存储学生的姓名和成绩。我们定义了一个`MAX_NUM_STUDENTS`常量来表示最多可以输入的学生数量。我们使用了一个`num_students`变量来记录实际输入的学生数量。我们使用`fopen()`函数来创建一个名为“成绩.txt”的文档,并使用`fprintf()`函数向文档中写入学生的姓名和成绩。然后,我们使用`scanf()`函数从键盘输入学生姓名,并使用`for`循环逐一查找学生的成绩。如果找到了该学生的成绩,则使用`printf()`函数输出该学生的成绩。如果在文件中没有找到该学生的成绩,则输出错误提示信息。
希望这个代码对您有帮助!
阅读全文