#include<stdio.h>
#define MAXNUM 20
typedef struct node
{
int num;
char name[20];
float score;
}ElemType;
//输入数据函数
void Create(ElemType stu[],int *n)
{
struct node *k;
int i = 1;
printf("Please input n=");
scanf("%d",&*n);
for (k = stu + 1; k <= stu + *n; k ++, i++)
{
printf("please input %d\tnum\tname\tscore\n", i);
scanf("%d%s%f",&k->num, k->name, &k->score);
}
}
//比较成绩高低函数
int Max(ElemType a[], int n)
{
float maxScore;
int i,x;
maxScore = a[1].score;
for(i = 1; i <= n; i++)
{
if(a[i].score >= maxScore)
{
maxScore = a[i].score;
x = i;
}
}
return x;
}
int Min(ElemType a[], int n)
{
float minScore;
int i,y;
minScore = a[1].score;
for(i = 1; i <= n; i++)
{
if(a[i].score <= minScore)
{
minScore = a[i].score;
y = i;
}
}
return y;
}
void main()
{
ElemType a[MAXNUM+1];
int i,n;
int k,j;//标记最值的下标
Create(a,&n);
printf("\nCreate is completed!\n----The data is----\n num\t name\t\t score\n");
for (i = 1;i <= n; i++)
{
printf("%d\t%s\t\t%f\n",a[i].num, a[i].name, a[i].score);
}
k = Max(a,n);
j = Min(a,n);
// printf("%d\n",k);
// printf("%d\n",j);
printf("---------------------------------------------\n");
printf("higher:%d\t%s\t\t%f\n",a[k].num, a[k].name, a[k].score);
printf("lower:%d\t%s\t\t%f\n",a[j].num, a[j].name, a[j].score);
}