c语言录入学生信息不会覆盖
时间: 2023-08-24 13:36:57 浏览: 92
您可以使用结构体数组来存储学生信息,每录入一个学生信息就将其存入数组中。可以使用一个变量来记录已经录入的学生个数,每次录入新的学生信息时,将其存入数组的下一个空闲位置,也就是数组下标为已经录入学生个数的位置。这样可以避免覆盖已经录入的学生信息。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
struct student {
char name[20];
int age;
char gender[10];
};
int main() {
struct student students[100];
int num_students = 0;
char flag[10];
do {
printf("请输入学生姓名:");
scanf("%s", students[num_students].name);
printf("请输入学生年龄:");
scanf("%d", &students[num_students].age);
printf("请输入学生性别:");
scanf("%s", students[num_students].gender);
num_students++;
printf("是否继续录入学生信息?(yes or no)");
scanf("%s", flag);
} while (strcmp(flag, "yes") == 0);
// 输出录入的学生信息
printf("已经录入的学生信息:\n");
for (int i = 0; i < num_students; i++) {
printf("姓名:%s,年龄:%d,性别:%s\n", students[i].name, students[i].age, students[i].gender);
}
return 0;
}
```
在上述代码中,我们使用了一个结构体数组 `students` 来存储学生信息,其中每个元素表示一个学生的信息。变量 `num_students` 记录已经录入的学生个数,每次录入新的学生信息后, `num_students` 的值会加 1。这样就可以保证新的学生信息会存储在数组的下一个空闲位置,不会覆盖已经录入的学生信息。
阅读全文