用c语言写一个实现对已有结构体数组(学号,学生姓名,性别,年龄)进行添加功能的程序
时间: 2024-05-15 20:13:11 浏览: 116
学生信息管理系统, 实现学生信息包括:学号、姓名、性别、年龄、班级等信息
5星 · 资源好评率100%
以下是一个简单的示例程序,实现了对已有结构体数组进行添加功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100
struct student {
int id;
char name[20];
char gender[10];
int age;
};
int main() {
struct student students[MAX_STUDENTS];
int num_students = 0;
// 添加初始数据
students[0].id = 1001;
strcpy(students[0].name, "张三");
strcpy(students[0].gender, "男");
students[0].age = 18;
num_students++;
students[1].id = 1002;
strcpy(students[1].name, "李四");
strcpy(students[1].gender, "男");
students[1].age = 19;
num_students++;
// 输出初始数据
printf("初始数据:\n");
for (int i = 0; i < num_students; i++) {
printf("%d\t%s\t%s\t%d\n", students[i].id, students[i].name, students[i].gender, students[i].age);
}
// 添加新数据
printf("请输入新数据(学号 姓名 性别 年龄):\n");
while (num_students < MAX_STUDENTS) {
if (scanf("%d %s %s %d", &students[num_students].id, students[num_students].name, students[num_students].gender, &students[num_students].age) != 4) {
break;
}
num_students++;
// 继续输入或结束
printf("继续输入新数据(学号 姓名 性别 年龄)或输入任意非法字符结束:\n");
}
// 输出所有数据
printf("所有数据:\n");
for (int i = 0; i < num_students; i++) {
printf("%d\t%s\t%s\t%d\n", students[i].id, students[i].name, students[i].gender, students[i].age);
}
return 0;
}
```
这个程序定义了一个结构体 `student`,包含学号、姓名、性别和年龄四个字段。它先添加了两条初始数据,然后通过循环读取用户输入的新数据,并将其添加到结构体数组中。当输入任意非法字符时,输入循环结束,程序输出所有已有数据。
阅读全文