**
1004 成绩排名
**
#include <stdio.h>
#include <stdlib.h>
typedef struct studentData{
char name[11];
char num[11];
int score;
}sData;
//typedef struct studentData sData; 此时struct studentData 等价于 sData
int main(int argc, char *argv[]) {
int i;
int n;
sData *sdata; //定义一个sData类型的指针,用于动态申请结构体指针数组
int max,min; //最高分,最低分
int maxIndex, minIndex; //成绩最高、最低学生序号
scanf("%d", &n);
sdata = (sData *)calloc(n, sizeof(sData)); //动态结构体指针数组。
for(i=0; i<n; i++)
{
//结构体成员变量为数组时不需要取地址符号“&”,为基本数据类型时需要取地址符“&“。
scanf("%s %s %d", sdata[i].name, sdata[i].num, &sdata[i].score);
if(i==0){ //将第一个读入的数据组同时默认为最大值和最小值
max= sdata[0].score;
min= sdata[0].score;
maxIndex=0;
minIndex=0;
continue;
}
if(sdata[i].score>max)
{
max=sdata[i].score;
maxIndex=i;
}
if(sdata[i].score<min)
{
min=sdata[i].score;
minIndex=i;
}
}
printf("%s %s\n", sdata[maxIndex].name, sdata[maxIndex].num);
printf("%s %s\n", sdata[minIndex].name, sdata[minIndex].num);
free(sdata); //注意释放资源!!!
return 0;
}