C语言问题 急~~~~~~~~~~~~~~~~~~~~~

这是一个学生管理系统:不知道哪有问提???请各位大哥大姐帮帮忙~
#include<stdio.h>
struct student
{
int no; //学号
char name[15]; //姓名
int score[3]; //三门成绩
double avr; //平均成绩
};
struct student stu[50]; //声明一个结构数组变量
struct student input();
void display (struct student stu[],int count);
void sort (struct student stu[],int count);
void insert (struct student stu[],int count);
void del (struct student stu[],int count);

void main()
{
int count;
char ch;
ch='y';
printf("请输入学员的信息: ");
printf("\n");
count=0;
while((ch=='y')||(ch=='Y'))
{
stu[count]=input(); //调用录用信息函数
count++;
printf("\n是否继续?(y or n)");
scanf("%c",&ch);
}
printf("\n排序前的信息: ");
display(stu,count); //调用显示函数
sort(stu,count); //调用排序函数
printf("\n排序后的信息: ");
display(stu,count);
printf("是否要插入新学员(y or n)");
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
{
insert(stu,count); //调用插入信息
count++;
printf("\n插入新学员信息: ");
display(stu,count);
}
printf("\n\n是否要删除学员信息: ");
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
{
del(stu,count); //调删除示信息
count--;
printf("\n删除后的学员信息: ");
display(stu,count);
}
}
struct student input(); //录入信息函数
{
struct student stud;
int sum;
printf("\n学员:");
scanf("%d",stud.no);
printf("\n姓名:");
scanf("%d",stud.name);
printf("\n三门成绩:");
sum=0;
printf("\n");
for(j=0;j<3;j++)
{
printf("成绩%d: ",j+1);
scanf("%d",&stud.score)
sum+=stud.score[j];
}
stud.avr=sum/3;
return stud;
}
void dispaly(struct student stu[],int count)//显示信息
{

int i;
printf("\n学号\t姓名\t\t平均成绩");
printf("\n");
for(i=0;i<count;i++)
{

printf("%-3d",stu[i].no);
printf("\t%-15s",stu[i].name);
printf("\t%-10.1f",stu[i].avr);
printf("\n");
}
}
void sore(struct student stu[],int count)//排序函数
{

struct student t;
int i,j;
for(i=0;i<count;i++)
{

for(j=0;j<count-i-1;j++)//比较
{
if(stu[j].avr<stu[j+i].avr)
{
t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;
}
}
}
}
void insert ( struct student stu[],int count) //插入函数
{
/*插入一个学员的信息,要求插入后的学员信息依然有序*/
int i,j;
struct student temp;
printf("\n请输入要插入的学员新系");
temp=input();
for(i=0;i<count;i++)
{
if(stu[i].avr<temp.avr)
break;
}
for(j=count;j>=i;j--)
{
stu[j+1]=stu[j];
}
stu[i]=temp;
}
void del(struct student stu[],int count) //删除函数
{
int dno;
int i;
int j;
printf("请输入要删除的学员:");
scanf("%d",&dno);
for(i=0;i<count;i++)
{
if(stu[i].no==dno)
break;
}
for(j=i;j<count-1;j++)
{
stu[j]=stu[j+1];
}
}
Compiling...
gfgd.c
D:\MSDev98\MyProjects\tyt\gfgd.c(56) : error C2449: found '{' at file scope (missing function header?)
D:\MSDev98\MyProjects\tyt\gfgd.c(74) : error C2059: syntax error : '}'
Error executing cl.exe. 2处错误
还是没有正确答案
可以运行不过是一堆乱吗

我给你改了改在我机器上运行没有问题,你拷过去看一下
我用的是vc++编译的。
#include<stdio.h>
struct student
{
int no; //学号
char name[15]; //姓名
int score[3]; //三门成绩
double avr; //平均成绩
};

struct student stu[50];//声明一个结构数组变量
int count=-1;

struct student input();
void display();
void sort();
void insert();
void del();

void main()
{
char ch='y';
count=0;
printf("请输入学员的信息:\n");
while((ch=='y')||(ch=='Y'))
{
stu[count++]=input(); //调用录用信息函数
printf("\n是否继续?(y or n)");
fflush(stdin);
scanf("%c",&ch);
}

printf("\n排序前的信息: ");
display(); //调用显示函数
sort(); //调用排序函数
printf("\n排序后的信息: ");
display();

printf("是否要插入新学员(y or n)");
fflush(stdin);
scanf("%c",&ch);

if(ch=='y'||ch=='Y')
{
insert(); //调用插入信息
count++;
printf("\n插入新学员信息: ");
display();
}

printf("\n\n是否要删除学员信息(y or n) ");
fflush(stdin);
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
{
del(); //调删除示信息
printf("\n删除后的学员信息: ");
display();
}

}

//显示函数-----------------------------------
void display()
{
int i;
printf("\n学号\t姓名\t\t平均成绩\n");
for(i=0;i<count;i++)
{
printf("%-3d",stu[i].no);
printf("\t%-15s",stu[i].name);
printf("\t%-10.1f\n",stu[i].avr);
}

}

//排序函数----------------------------------
void sort()
{
struct student t;
int i,j;

for (i=0;i<=count;i++)
{
for(j=0;j<=count-i;j++)
{
if(stu[j].avr>stu[j+1].avr)
{
t=stu[i];
stu[i]=stu[j];
stu[j]=t;
}
}
}

}

//录入信息函数------------------------
struct student input()
{
struct student stud;
int sum=0,j;
printf("\n学员:");
scanf("%d",&stud.no);
printf("\n姓名:");
scanf("%s",stud.name);
printf("\n三门成绩:\n");

for(j=0;j<3;j++)
{
printf("成绩%d: ",j+1);
scanf("%d",&stud.score[j]);
sum+=stud.score[j];
}
stud.avr=sum/3;
return stud;
}

//插入函数------------------------------------
void insert()
{
//插入一个学员的信息,要求插入后的学员信息依然有序
int i,j;
struct student temp;

printf("\n请输入要插入的学员新系");
temp=input();
for(i=0;i<count;i++)
{
if(stu[i].avr>temp.avr)
break;
}
for(j=count;j>=i;j--)
{
stu[j+1]=stu[j];
}
stu[i]=temp;
}

//删除函数---------------------------------
void del()
{
int dno;
int i,j;

printf("请输入要删除的学员:");
scanf("%d",&dno);

for(i=0;i<count;i++)
{
if(stu[i].no==dno)
break;
}

for(j=i;j<count-1;j++)
{
stu[j]=stu[j+1];
}
count--;

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-02-27
学校教育真照书本来啊,有MFC不用,非让学生自己写个控制台的,输入输出判断是多痛苦的事情啊....而且也没什么实际意义....
第2个回答  2007-02-27
编译不通过?
函数头struct student input(); 后面多了一个分号
有一个j未定义
scanf("%d",&stud.score)后面少一个分号。

不是编译不通过请说明具体问题,我愿意帮你看。
第3个回答  2007-03-01
汗!感觉思路没错,可能就是点小问题
第4个回答  2007-02-27
网上有个程序的,你把句子输进去就在错的地方下面划一道。找找吧。人力太麻烦。
相似回答