编辑代码

#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;
    /*printf("请输入学生人数:\n");
    scanf("%d",&n);
    for(i = 0; i < n ; i ++)
    {
        printf("请输入第%d个学生的姓名:\n", i + 1);
        scanf("%s",stu[i].name);
        printf("请输入第%d个学生的学号:\n", i + 1);
        scanf("%d",&stu[i].id);
        printf("请输入第%d个学生的成绩:\n", i + 1);
        scanf("%f",&stu[i].score);
    }
    show(stu);*/
   // printf("是否添加学生信息?(输入 1 或 0)");
    //scanf("%d",&flag);
    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);
    }
}