请编写程序,定义用于存储学生信息的结构体数组,输入学生的准考证号,姓名,和各科成绩信息,利用void searchinfo(stuStru *s,char id[],jnt n)
时间: 2023-10-27 14:05:52 浏览: 106
以下是一个示例程序,定义了一个结构体数组用于存储学生信息,同时提供了一个函数用于搜索学生信息并输出:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 20
#define MAX_ID_LEN 10
#define MAX_SUBJECTS 5
typedef struct {
char id[MAX_ID_LEN];
char name[MAX_NAME_LEN];
float scores[MAX_SUBJECTS];
} stuStru;
void searchinfo(stuStru *s, char id[], int n);
int main() {
stuStru students[3] = {
{"001", "Alice", {80, 90, 85, 92, 88}},
{"002", "Bob", {70, 82, 78, 65, 90}},
{"003", "Charlie", {95, 88, 92, 97, 93}}
};
char search_id[MAX_ID_LEN];
printf("Enter student ID to search: ");
scanf("%s", search_id);
searchinfo(students, search_id, 3);
return 0;
}
void searchinfo(stuStru *s, char id[], int n) {
int i, j;
for (i = 0; i < n; i++) {
if (strcmp(s[i].id, id) == 0) {
printf("Student ID: %s\n", s[i].id);
printf("Name: %s\n", s[i].name);
printf("Scores:\n");
for (j = 0; j < MAX_SUBJECTS; j++) {
printf("Subject %d: %.2f\n", j+1, s[i].scores[j]);
}
return;
}
}
printf("No student found with ID %s\n", id);
}
```
在这个程序中,我们定义了一个 `stuStru` 结构体用于存储学生的信息。其中包含了学生的准考证号、姓名以及各科成绩信息。在 `main` 函数中,我们定义了一个结构体数组 `students`,并初始化了其中的三个元素。接下来,我们让用户输入要搜索的学生的准考证号,并调用 `searchinfo` 函数进行搜索。这个函数接受一个结构体数组指针 `s`、要搜索的学生的准考证号 `id` 以及结构体数组的长度 `n` 作为参数。在函数中,我们遍历整个结构体数组,查找是否有与要搜索的学生准考证号相同的学生记录。如果找到了,就输出该学生的信息,并使用 `return` 语句退出函数。如果遍历完整个数组还没有找到符合要求的学生,则输出一条提示信息。
阅读全文