就业数据资源平台
当前位置:首页 > 数据库技术
计算机等级考试三级编程解析九

九、学生成绩,结构体问题

  下列程序的功能是:已知学生的记录由学号和学习成绩构成,N名学生的数据已存入
A数组中。找出成绩最高的学生记录(假定最高成绩的记录中唯一的),通过形参返回。
请考生编写函数MMM(STU A[],STU *S)实现程序的要求,最后调用函数READWRITEDAT
()把结果输出到文件OUT.DAT中.
例如: KS01 87
KS09 97
KS11 67
则调用该函数后,输出THE TOP:KS09,97
# include"stdio.h"
# include"string.h"
# define N 10 
void readwritedat();

typedef struct ss{
char num[10];
int s;
}STU;

mmm(STU a[],STU *s)
{

}

main()
{
STU a[N]={{"01",81},{"02",89},{"03",66},{&quo
t;04",87},{"05",77},
{"06",90},{"07",79},{"08",61},{"09&qu
ot;,80},{"10",71}},m;
int i;
for(i=0;iprintf("No=%s Mark=%d\n",a[i].num,a[i].s);
mmm(a,&m);
printf("the highest: %s,%d\n",m.num,m.s);
readwritedat();
}

void readwritedat()
{
FILE *rf,*wf;
STU a[N],m;
int i;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++)
fscanf(rf,"%s,%d",a[i].num,&a[i].s);
mmm(a,&m);
fprintf(wf,"the top: %s,%d\n",m.num,m.s);
fclose(rf);
fclose(wf);
}

/* 注:较简单。*/
mmm(STU a[],STU *s)
{
int i;
s->s=a[0].s;
for(i=1;iif(a[i].s>s->s)
*s=a[i];
}
就业数据资源平台