指针与字符串.要求采用结构体数组存储同学基本信息

用现有需要对某班同学档案进行管理,现在需要设计一个程序实现,每位同学的基本信息存储和管理。要求每位同学具有的基本信息有:学号、姓名、班级名称、本学期课程成绩(至少包括4门课)。要求实现班上同学档案管理,要求程序实现数据输入、通过同学学号对同学信息查询功能并输出。为了测试方便,假定只有4名同学基本数据信息。要求采用结构体数组存储同学基本信息。
typedef struct student
{
……
}STUDENT;
要求:void Input(STUDENT *p) 作为基本数据信息录入函数;STUDENT * Search(int id)作为查找数据的函数;void Print(STUDENT *p) 作为输出单个同学信息函数;然后在main函数中调用以上函数实现上面功能。

这个写的比较详细,可以参考下
https://ask.csdn.net/questions/7735480

供参考:

#include <stdio.h>
#include <stdlib.h>
#define M 4  //4名学生
#define N 4  //4门功课
typedef struct student{
    int   id;
    char  name[16];
    char  clas[64];
    float score[N];
}STUDENT;
STUDENT stu[M];
void Input(STUDENT *p)
{
    int i;
    scanf("%d %s %s", &p->id, p->name, p->clas);
    for(i=0;i<N;i++)
        scanf("%f", &p->score[i]);
}
void Print(STUDENT *p)
{
    int i;
    printf("%d %s %s", p->id, p->name, p->clas);
    for(i=0;i<N;i++)
        printf(" %.2f", p->score[i]);
    printf("\n");
}
STUDENT * Search(int id)
{
    int i;
    for(i=0;i<M;i++)
        if(stu[i].id == id)
           return &stu[i];
    if(i >= M)
        return NULL;
}
int main()
{
    int id;
    STUDENT *p;
    printf("请输入 %d 个学生 学号 姓名 班级 及 %d 门课程成绩:\n", M, N);
    for(p=stu;p<stu+M;p++)
       Input(p);

    printf("请输入要查找的学号:");
    scanf("%d", &id);
    p = Search(id);
    if(!p)
        printf("Not Found.\n");
    else
        Print(p);

    printf("输出所有学生的信息:\n");
    for(p=stu;p<stu+M;p++)
        Print(p);

    return 0;
}