这题目很简单,方法也不唯一,我第一眼看到就想用结构体,但其实不用结构体数组,直接即存即用,将比max大,比min小的数记录下来,再用头文件<string.h>中的strcpy函数,将名字和学号也拷贝到设好的字符串中就行了。
代码实现:
#include<stdio.h>
typedef struct{
char name[11],number[11];
int grades;
}STD;
int main(void){
int i,n,max,min;
scanf("%d",&n);
STD std[n];
for(i=0;i<n;i++){
scanf("%s %s %d",std[i].name,std[i].number,&std[i].grades);//注意只有grades要加&
}
max=min=0;
for(i=0;i<n;i++){
if(std[i].grades>std[max].grades)
max=i;
if(std[i].grades<std[min].grades)
min=i;
}
printf("%s %s\n",std[max].name,std[max].number);
printf("%s %s",std[min].name,std[min].number);
return 0;
}