定义定一个结构体类型student,写一个函数,根据学号或者成绩,对包含有n个学生的结
时间: 2023-05-09 15:02:58 浏览: 243
构体数组进行查询并输出学生的信息。
首先,我们需要定义一个结构体类型student,其中包含学生的基本信息,如学号、姓名、性别、年龄、成绩等。其定义可以如下所示:
struct student {
int num; //学号
char name[20]; //姓名
char sex; //性别
int age; //年龄
float score; //成绩
};
接下来,我们需要编写一个函数,该函数可以根据学号或者成绩对包含有n个学生的结构体数组进行查询并输出学生的信息。函数的定义可以如下所示:
void search(struct student stu[], int n, int option, float value)
{
int i, flag = 0;
for (i = 0; i < n; i++) {
if (option == 1 && stu[i].num == value) { //按学号查询
printf("学号:%d,姓名:%s,性别:%c,年龄:%d,成绩:%.1f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score);
flag = 1;
} else if (option == 2 && stu[i].score == value) { //按成绩查询
printf("学号:%d,姓名:%s,性别:%c,年龄:%d,成绩:%.1f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score);
flag = 1;
}
}
if (flag == 0) {
printf("未找到符合条件的学生。\n");
}
}
该函数接受三个参数:stu[]表示存储学生信息的结构体数组,n表示学生的数量,option表示查询选项,1表示按学号查询,2表示按成绩查询,value表示要查询的学号或成绩的值。函数首先遍历整个数组,如果找到符合条件的学生,就输出其基本信息,并将flag标记为1。如果未找到符合条件的学生,就输出提示信息。最后返回。
示例代码如下所示:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student {
int num; //学号
char name[20]; //姓名
char sex; //性别
int age; //年龄
float score; //成绩
};
void search(struct student stu[], int n, int option, float value);
int main()
{
int i, n, option;
float value;
struct student stu[50];
printf("请输入学生数量:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("请输入学号、姓名、性别、年龄、成绩(以空格分隔):");
scanf("%d %s %c %d %f", &stu[i].num, stu[i].name, &stu[i].sex, &stu[i].age, &stu[i].score);
}
printf("请输入查询选项(1代表按学号查询,2代表按成绩查询):");
scanf("%d", &option);
printf("请输入要查询的值:");
scanf("%f", &value);
search(stu, n, option, value);
return 0;
}
void search(struct student stu[], int n, int option, float value)
{
int i, flag = 0;
for (i = 0; i < n; i++) {
if (option == 1 && stu[i].num == value) { //按学号查询
printf("学号:%d,姓名:%s,性别:%c,年龄:%d,成绩:%.1f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score);
flag = 1;
} else if (option == 2 && stu[i].score == value) { //按成绩查询
printf("学号:%d,姓名:%s,性别:%c,年龄:%d,成绩:%.1f\n", stu[i].num, stu[i].name, stu[i].sex, stu[i].age, stu[i].score);
flag = 1;
}
}
if (flag == 0) {
printf("未找到符合条件的学生。\n");
}
}
阅读全文