#include <stdio.h>
int n=0;
void input(struct student ip[]);
void output(struct student op[]);
void px(struct student paixu[]);
#define N 50
struct student
{
int num;
char name[15];
float cj[3];
double var;
}st[N];
void main()
{
struct student *p;
p=st;
input(p);
px(p);
printf("学员编号\t学员姓名\t平均成绩\n");
output(p);
do
{
printf("是否要继续以下操作:\n");
printf("");
}while(1);
}
void px(struct student ary[])
{
int i,j;
struct student temp[1]; //结构体应该怎么交换,这是想按学员的平均分进行排序,但是我不知道怎么交换了
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(st[i].var<st[j].var)
{
temp[1]=st[i];
st[i]=st[j];
st[j]=temp[1];
}
}
void output(struct student ary[])
{
int i;
for(i=0;i<n;i++)
printf("%d\t\t%s\t\t%2.2f\n",st[i].num,st[i].name,st[i].var);
}
void input(struct student ary[])
{
int i=0,j;
do
{
printf("请输入学员人数:(1~50)\n");
scanf("%d",&n);
}while(n<1 || n>50);
for(i=0;i<n;i++)
{
// fflush(stdin);
do{
printf("请输入学员学号:(1~%d)",n);
scanf("%d",&st[i].num);
}while(st[i].num<0||st[i].num>n);
printf("请输入学员姓名:");
scanf("%s",&st[i].name);
fflush(stdin);
float score=0;
for(j=0;j<3;j++)
{
printf("请输入学号%d同学的第%d门成绩:\t",st[i].num,j+1);
scanf("%f",&st[i].cj[j]);
score+=st[i].cj[j];
}
st[i].var=score/3;
/* printf("学号是%d:\n",st[i].num);
printf("平均分是%s:\n",st[i].name);
printf("总分是");
printf("平均分是%.2f:\n",st[i].var);
n--;
printf("!注意现在还有个%d学号可以操作!\n",n-1);*/
}
// printf("平均分是:");
/* printf("请输入学员人数:(1~50)\n");
scanf("%d",&n);*/
}