//老师这个程序暂时变成这样,复杂的我正在研究//
#include <stdio.h>
#define N 3
#define M 2
typedef struct student
{ int num ;
float score[M];
float aver;
float total;
}STU;
void Input (STU s[])
{ int i,j;
for(i=0;i<N;i++)
{
printf("input num:/n");
scanf("%d",&s[i].num);
s[i].total=0;
for(j=0;j<M;j++)
{
printf("input scores:/n");
scanf("%f",&s[i].score[j]);
s[i].total+=s[i].score[j];
}
s[i].aver =s[i].total/M;
}
}
void sort (STU s[])
{ int i,j,max ;
STU k;
for(i=0;i<N;i++)
{ max=i;
for(j=i+1;j<=N-i;j++)
if(s[max].total<s[j].total)
max=j;
if(max!=i)
{k=s[max];
s[max]=s[j];
s[j]=k;
}
}
}
void print(STU s[])
{
int i,j;
printf("num math chinese aver total rank/n");
for(i=0;i<N;i++)
{ printf("%-8d",s[i].num);
for(j=0;j<=M;j++)
{printf("%-8.2f",s[i].score[j]); }
printf("%-8.2f%-8.2f%d",s[i].aver,s[i].total,i+1);
printf("/n");
}
}
void search (STU s[])
{ int i,j;
printf("input the course :/n");
scanf("%d",&j);
for(i=0;i<N;i++)
{ if(s[i].score[j]>=90)
printf("%d,%-.2f,%-.2f,%-.2f",s[i].num,s[i].score[0],s[i].score[1],s[i].total);
}
}
#include <stdio.h>
void main()
{
STU s[N];
Input(s);
printf("/n");
sort(s);
printf("/n");
print(s);
printf("/n");
search (s);
printf("/n");
}