C语言高手进,悬赏100,追加100!!!!!!!!

做一程序,用来对N个学生M门成绩进行处理。这些处理内容包括:输入学生信息,将信息保存到文件里,对信息排序,插入新信息,修改信息,查找信息,删除信息,输出优秀与不及格等内容~~

我编写了不完全的内容,剩下的修改,排序(按平均分从高到低输出),删除,优秀不及格输出fail to编出
求高手不吝赐教,花宝贵时间将其补齐~~

狂谢!!悬赏分100,追加分100.(符合要求并能调试出,然后鉴于本人小菜鸟,最好能用比较简单的语句)

#include<stdio.h>
#include<stdlib.h>
struct student
{
char name[10];
char num[10];
float score[10];
float ave;
}stu[100];
int stunum,subnum;

void scan()//输入
{
int i,j;
float sum;
printf("请输入学生数,科目数:");
scanf("%d,%d",&stunum,&subnum);
for(i=0;i<stunum;i++)
{
printf("请输入第%d位学生的信息:\n",i+1);
printf("姓名:");
scanf("%s",&stu[i].name);
printf("学号:");
scanf("%s",&stu[i].num);
sum=0;
for(j=0;j<subnum;j++)
{
printf("第%d门科目成绩:",j+1);
scanf("%f",&stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].ave=sum/subnum;
}
}

void reveal()//展示
{
int i,j,m;
printf("NAME NUM ");
for(m=0;m<subnum;m++)
printf("SCORE%d ",m+1);
printf("AVERAGE\n");
for(i=0;i<stunum;i++)
{
printf("%-10s%-10s",stu[i].name,stu[i].num);
for(j=0;j<subnum;j++)
printf("%-9.2f ",stu[i].score[j]);
printf("%-9.2f\n",stu[i].ave);
}
}

void save()//保存
{
FILE *fp;
int i;
if((fp=fopen("stud","wb"))==NULL)
{
printf("文件打开错误。\n");
return;
}
for(i=0;i<stunum;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("文件写入错误\n");
fclose(fp);
}

void sort()//排序

剩下的在问题补充里

这是个冒泡排序,希望能帮到你
第一个参数是数组的个数,第2个参数是数组名
数组类型需要按情况更改
参考下

void sortpop(int accout,float *sortarray)
{
int j=0;
int flag=1;
int m=accout-1;
float temp;
while(m>0 && flag==1)
{
flag=0;
for(j=0;j<m;j++)
{
if(sortarray[j]<sortarray[j+1])
{
temp=sortarray[j];
sortarray[j]=sortarray[j+1];
sortarray[j+1]=temp;
flag=1;
}
}
m--;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-06-24
100分是没人愿意做的

不过只能祈求哪位好弟兄做过一样的命题 他可以直接把代码贴上来
相似回答