#include<stdio.h>
#define maxsize 100
typedef struct{
int num;
float score;
}stu;
typedef stu datatype;
typedef struct{
datatype data[maxsize];
int length;
}seqlist;
void creatlist(seqlist *l)
{
int i,k,n;
printf("请输入学生人数(小于等于%d)\n",maxsize);
scanf("%d",&n);
k=1;
while(n>maxsize)
{
if(k<3)
{
printf("储存空间不同,请重新输入学生人数:");
scanf("%d",&n);
k++;
}
else
{
printf("输入程序不正确,程序将退出!");
exit(1);
}
}
printf("请输入学生学号(int)和成绩(float):\n");
for(i=0;i<n;i++)
scanf("%d%f",&l->data[i].num,&l->data[i].score);
l->length=n;
return;
}
void printlist(seqlist *l)
{
int i;
for(i=0;i<l->length;i++)
printf("%d%5.2f\n",l->data[i].num,l->data[i].score);
return;
}
void locatelist(seqlist *l,datatype e)
{
int i;
i=0;
while(i<l->length&&l->data[i]!=e)
i++;
if(i<l->length)
return i+1;
else
return -1;
}
void alterlist(seqlist *l)
{
int i;
i=locatelist(l,59);
l->data[i-1].score=60;
}
int main()
{
seqlist *l,t;
l=&t;
creatlist(l);
scanf("%d",l);
printlist(l);
alterlist(l);
locatelist(l);
return 0;
}