#include<stdio.h>
#include<string.h>
typedef struct student
{
int id;
char name[20];
float score[3];
}STUDENT,pstudent;
STUDENT students[50];
void InputStudent(STUDENTs);
STUDENTFindStudent(STUDENT s[],int n_students,int id);
void ShowStudent(STUDENT s);
void main()
{
int i,j,n;
int number;
pstudent s;
s=&students[50];
printf("输入学生数量:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
InputStudent(students+i);
for(j=0;j<3;j++)
{
printf("输入第%d科成绩:",j+1);
scanf("%d",(*s).score);
}
}
for(i=0;i<n;i++)
{
(*s).id=1000+i+1;
}
printf("输入要查找的学生的学号:");
scanf("%d",&number);
s=FindStudent(students,n,number);
if(s!=NULL)
{
ShowStudent(s);
}
else
{
printf("未找到学生\n");
}
ShowStudent(s);
}
void InputStudent(STUDENT*s)
{
printf("输入学生姓名:\n");
scanf("%s",(*s).name);
}
STUDENT *FindStudent(STUDENT s[],int n_students,int id)//返回指向结构体的指针
{
int i;
int *p;
for(i=0;i<n_students;i++)
{
if(strcmp(id,students[i].id)==0)
{
p=&students[i];
return p;
}
}
return NULL;
}
void ShowStudent(STUDENT* s)
{
int i;
if(s!=NULL)
{
printf("%s%d",(*s).name,(*s).id);
for(i=0;i<3;i++)
{
printf("第%d科成绩为:%d",i+1,(*s).score[i+1]);
}
}
else
printf("未找到学生\n");
}
输入学生学号查找并显示该学生信息的功能为什么实现不了,怎么修改