声明学生结构体类型,成员包狂学号,性别, 姓名,定义结构体数组,键盘依次输人每个学生信息, 写一个函数,依次打印输出学生结构体数组每个学生信息 不用scanf
时间: 2024-12-16 09:17:39 浏览: 7
在C语言中,你可以创建一个名为`Student`的结构体类型,用于存储学生的信息,包括学号、性别和姓名。首先,我们声明这个结构体:
```c
struct Student {
int studentID;
char gender; // 通常用'm'表示男性,'f'表示女性,这里假设只有这两个选项
char name[50]; // 假设姓名最多不超过50个字符
};
```
接着,我们可以定义一个`Student`类型的数组来存储多个学生的数据:
```c
struct Student students[10]; // 假设最多有10个学生
```
为了输入每个学生的信息,我们可以编写一个简单的交互式函数,让用户逐个输入:
```c
void inputStudents() {
for (int i = 0; i < sizeof(students) / sizeof(students[0]); i++) {
printf("请输入第%d位学生的学号: ", i + 1);
scanf("%d", &students[i].studentID); // 这里使用了scanf,如果你想避免,可以换成getchar()获取字符然后再转换
printf("请输入第%d位学生的性别(m/f): ", i + 1);
students[i].gender = getchar(); // 通过getchar获取字符并保存到gender变量
fgets(students[i].name, sizeof(students[i].name), stdin); // 获取输入的字符串,去掉换行符
students[i].name[strcspn(students[i].name, "\n")] = '\0'; // 去掉fgets添加的换行符
}
}
```
最后,我们编写一个函数来打印学生信息:
```c
void printStudents(struct Student students[], int size) {
for (int i = 0; i < size; i++) {
printf("学生ID:%d, 性别:%c, 姓名:%s\n", students[i].studentID, students[i].gender, students[i].name);
}
}
```
为了演示整个过程,你可以调用`inputStudents()`函数先收集数据,然后在适当的地方调用`printStudents()`函数展示学生信息。
阅读全文