C语言按专业名筛选学生并输出代码怎么打
时间: 2023-07-31 20:09:32 浏览: 41
假设您的学生信息已经存储在一个结构体数组中,结构体包含以下信息:学号、姓名、专业名称、年级、成绩等。现在需要按照指定的专业名称筛选学生并输出他们的信息。可以使用以下代码实现:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
struct Student {
int id; // 学号
char name[20]; // 姓名
char major[20]; // 专业名称
int grade; // 年级
float score; // 成绩
};
int main() {
int n; // 学生总人数
printf("请输入学生总人数:");
scanf("%d", &n);
struct Student stu[n]; // 定义结构体数组
// 输入每个学生的信息
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的信息:\n", i+1);
printf("学号:");
scanf("%d", &stu[i].id);
printf("姓名:");
scanf("%s", stu[i].name);
printf("专业名称:");
scanf("%s", stu[i].major);
printf("年级:");
scanf("%d", &stu[i].grade);
printf("成绩:");
scanf("%f", &stu[i].score);
}
char major[20]; // 用于存储要筛选的专业名称
printf("请输入要筛选的专业名称:");
scanf("%s", major);
// 遍历结构体数组,输出符合条件的学生信息
printf("符合条件的学生信息如下:\n");
for (int i = 0; i < n; i++) {
if (strcmp(stu[i].major, major) == 0) {
printf("学号:%d,姓名:%s,专业名称:%s,年级:%d,成绩:%.2f\n",
stu[i].id, stu[i].name, stu[i].major, stu[i].grade, stu[i].score);
}
}
return 0;
}
```
在上面的代码中,通过比较输入的专业名称和每个学生的专业名称来筛选符合条件的学生。如果专业名称相同,则输出该学生的信息。