我作业是一个要输入学员 的学号,姓名,C语言成绩,JAVA成绩,并按成绩排序,并且可以插入一个学员的资料,而且是有序的,还能删除,删除后顺序不变。
麻烦高手帮下忙。下面是我一个没有编辑完的程序。少个删除和插入。
#include <stdio.h>
#include <string.h>
struct student
{
int no;
char name[20];
float cscore;
float jscore;
double avescore;
}stu[30];
double ave(struct student *);
double cscore(struct student *,int);
double jscore(struct student *,int);
int find(struct student *,int);
void main()
{
int i,count=0,num=0,xiabiao;
char a;
double cchengji,jchengji;
printf("请输入总人数:");
scanf("%d",&num);
if(num>0&&num<=30)
{
for(i=0;i<num;i++)
{
printf("\n学号:");
scanf("%d",&stu[i].no);
printf("\n姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\nC成绩:");
scanf("%f",&stu[i].cscore);
printf("\nJ成绩:");
scanf("%f",&stu[i].jscore);
stu[i].avescore=ave(&stu[i]);
printf("您是否需要继续(y/n)");
scanf("%c",&a);
if (a=='n'||a=='N')
break;
}
}
for(i=0;i<num;i++)
{
printf("\n学号:%d\t姓名:%s\tC成绩:%f\tj成绩:%f\t平均成绩:%f\t",stu[i].no,stu[i].name,stu[i].cscore,stu[i].jscore,stu[i].avescore);
}
cchengji=cscore(stu,num);
jchengji=jscore(stu,num);
printf("c平均成绩为:%f",cchengji);
printf("java平均成绩:%f",jchengji);
xiabiao=find(stu,num);
printf("要查找的学生的详细信息为:\n");
printf("\n学号:%d\t姓名:%s\tC成绩:%f\tj成绩:%f\t平均成绩:%f\t",stu[xiabiao].no,stu[xiabiao].name,stu[xiabiao].cscore,stu[xiabiao].jscore,stu[xiabiao].avescore);
}
double ave(struct student *p)
{
return ((p->cscore)+(p->jscore))/2;
}
double cscore(struct student *p,int count)
{
int i;
double sum=0;
for(i=0;i<count;i++,p++)
{
sum+=p->cscore;
}
return sum/count;
}
double jscore(struct student *p,int count)
{
int i;
double sum=0;
for(i=0;i<count;i++,p++)
{
sum+=p->jscore;
}
return sum/count;
}
int find(struct student *p,int count)
{
char fname[20];
int i;
printf("\n请输入要查找的学生姓名:");
fflush(stdin);
gets(fname);
for(i=0;i<count;i++,p++)
{
if(strcmp(p->name,fname)==0)
break;
}
return i;
}