请定义一个描述学生基本信息的结构,包括姓名、学号、身份证号、年龄、性别等,并定义一个结构体数组。编程: 1.编写函数input(),输入学生基本信息(3~5条记录),2.编写函数print(),输出全
时间: 2024-09-25 16:01:42 浏览: 63
数据结构-实验1 简单结构体操作.docx2022212535李炼滨.docx
在C语言中,我们可以定义一个名为`StudentInfo`的结构体来存储学生的基本信息,然后创建一个结构体数组来保存多个学生的数据。以下是相应的实现:
```c
#include <stdio.h>
#include <string.h>
// 定义学生信息结构体
typedef struct {
char name[50]; // 姓名
int student_id; // 学号
char id_card[18]; // 身份证号
int age; // 年龄
char gender[10]; // 性别
} Student;
// 函数原型声明
void input(Student[], int num);
void print(Student[]);
int main() {
// 初始化结构体数组
const int capacity = 5;
Student students[capacity];
// 输入学生信息
input(students, capacity);
// 输出所有学生信息
print(students);
return 0;
}
// 输入函数
void input(Student students[], int num) {
for (int i = 0; i < num; ++i) {
printf("请输入第 %d 名学生的信息:\n", i + 1);
fgets(students[i].name, sizeof(students[i].name), stdin); // 注意处理换行符
scanf("%d", &students[i].student_id);
fgets(students[i].id_card, sizeof(students[i].id_card), stdin); // 注意处理换行符
scanf("%d", &students[i].age);
fgets(students[i].gender, sizeof(students[i].gender), stdin); // 注意处理换行符
}
}
// 打印函数
void print(Student students[]) {
for (int i = 0; i < sizeof(students)/sizeof(students[0]); i++) {
printf("姓名: %s\n", students[i].name);
printf("学号: %d\n", students[i].student_id);
printf("身份证号: %s\n", students[i].id_card);
printf("年龄: %d\n", students[i].age);
printf("性别: %s\n", students[i].gender);
printf("\n");
}
}
```
在这个程序中,我们首先定义了一个`Student`结构体,包含了姓名、学号、身份证号、年龄和性别的字段。然后分别定义了用于输入和打印学生信息的函数`input()`和`print()`。在`main()`函数中,我们创建了一个大小为5的`Student`结构体数组并调用了这两个函数。
阅读全文