#include<stdio.h>
#include<string.h>
#define n 3
struct student//结构体数组
{
long xh;/*学号*/
char name[20];//姓名
float cj[3];/*三门成绩*/
float pj;/*平均成绩*/
}stu[n];
void main()
{
int i=0,j=0,k=0;
int xuhao;
float s=0;
struct student temp;
char oop;
do
{
printf("请输入学员的信息\n");
for(i=0;i<n;i++)
{
printf("请输入学号\n");
scanf("%d",&stu[i].xh);
printf("姓名:\n");
scanf("%s",&stu[i].name);
printf("三门成绩:\n");
for(j=0;j<3;j++)
{
printf("成绩%d\n",j+1);
scanf("%f",&stu[i].cj[j]);
s=s+stu[i].cj[j];
}
stu[i].pj=s/3;
s=0;
printf("\n平均成绩是:\n");
printf("%.2f\n",stu[i].pj);
}
printf("\n是否要继续(y/n)?\n");
fflush(stdin);
scanf("%c",&oop);
}while(oop=='y'||oop=='Y');
//按学号排序学员的信息
do
{
printf("\n排序的学员如下:\n");
printf("\t\n\t学号\t姓名\t平均成绩\n");
for(i=0;i<n;i++)
{
printf("\t\n\t%d\t%s\t%.2f\n",i+1,stu[i].name,stu[i].pj);
}
printf("是否要继续(y/n)?\n");
fflush(stdin);
scanf("%c",&oop);
}while(oop=='n'&&oop=='N');
//按平均成绩由大到小排序
do
{
printf("\n\t学号\t姓名\t平均成绩\n");
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if((stu[j]).pj<(stu[j+1]).pj)
{
//交换元素
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
}
printf("\n\t排序后的学员信息如下:\n");
printf("\n\t按成绩由大向小排序:\n");
for(i=0;i<n;i++)
{
printf("\n\t%d\t%s\t%.2f\n",(stu[i]).xh,stu[i].name,stu[i].pj);
}
printf("\n");
printf("\n是否要删除学员的学号(y/n)?\n");
fflush(stdin);
scanf("%c",&oop);
}while(oop=='n'||oop=='N');
/*实现插入学员后排序
printf("\n请输入要插入学员的信息\n");
for(i=0;i<n;i++)
{
printf("\n学号\n");
scanf("%d",&stu[i].xh);
fflush(stdin);
printf("\n姓名\n");
scanf("%d",&stu[i].name);
fflush(stdin);
printf("\n三门成绩%d\n");
for(j=0;j<3;j++)
{
printf("\n三门成绩%d\n",j+1);
scanf("%f",&stu[i].cj[j]);
s=s+stu[i].cj[j];
}
stu[i].pj=s/3;
printf("\n平均成绩是:\n");
printf("%.2f\n",stu[i].pj);
}
printf("\n插入新学员后的成绩\n");
printf("\n\t学号\t姓名\t\t平均成绩\n");
for(i=0;i<n;i++)
{
for(i=0;i<n;i++)
{
if(stu[j].pj[j]>stu[j].pj[j])
break;
}
for(b=n;b>i;b--)
{
stu[j].pj=stu[j-1].pj;
}
}
for(i=0;i<n;i++)
{
printf("\n\t%d\t%s\t\t%.2f\n",stu[i].xh,stu[i].name,stu[i].pj[j]);
}printf("\n");*/
//删除学员的学号后的成绩
printf("\n请输入删除学员的学号\n");
scanf("%d",&xuhao);
for(i=0;i<n;i++)
{
if(xuhao==stu[i].xh)
for(j=i;j<n;j++)
{
stu[i]=stu[i+1];
stu[i].name=stu[i+1].name;
stu[j].pj=stu[j+1].pj;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n-i-;j++)
{
if(stu[j].pj<stu[j+1].pj)
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
printf("\n删除后学员的信息如下:\n");
for(i=0;i<n;i++)
{
printf("\n%d\t%s\t\t%.2f\n",stu[i].xh,stu[i].name,stu[i].pj);
}printf("\n");
}
删除的学员不执行啊,帮帮我啊