#include <stdio.h>
#include<string.h>
#define num 20
int n = 0;
struct student
{
char name[10];
int id;
float score;
}stu[num], temp;
float search_student(struct student *s, char *name);
void new_student(struct student s[], struct student new_stu);
void show(struct student s[]);
int main ()
{
int flag = 0;
char name[10];
float sc;
do
{
printf("请输入第%d个学生的姓名:\n", n+1);
scanf("%s",temp.name);
printf("请输入第%d个学生的学号:\n",n + 1);
scanf("%d",&temp.id);
printf("请输入第%d个学生的成绩:\n", n + 1);
scanf("%f",&temp.score);
new_student(stu, temp);
printf("是否继续录入?(输入 1 或 0)");
scanf("%d",&flag);
}
while(flag);
show(stu);
printf("请输入要查询成绩的学生姓名:");
scanf("%s",name);
sc = search_student(stu, name);
printf("%s的成绩为:%4.2f",name,sc);
return 0;
}
float search_student(struct student *s, char *name)
{
for(int i = 0; i < n; i ++)
{
if(strcmp(name, s[i].name) == 0)
return s[i].score;
}
}
void new_student(struct student s[], struct student new_stu)
{
stu[n++] = new_stu;
}
void show(struct student s[])
{
printf("==========================学生信息===========================\n");
for(int i =0; i < n ; i ++)
{
printf("%s %4d %8.2f\n",s[i].name, s[i].id, s[i].score);
}
}