2 u011131354 u011131354 于 2013.06.19 17:53 提问

fatal error C1004: unexpected end of file found
c

编程序时遇到这个问题,求大神解答,小白一个。代码:
#include"stdio.h"
#include
#include
#include"process.h"
#include"ctype.h"
typedef struct
{
char num[10];
char name[10];
int physics;
int math;
int english;
int chemistry;
int art;
double aver;
}Student;
Student stu[99];

int shuru(Student stud[],int n)
{
int i=0;
char sign,x[10];
double a=0.0;

while(sign!='n'&&sign!='N')
{
printf("输入学号:");
scanf("%s",stu[n+i].num);
printf("输入姓名:");
scanf("%s",stu[n+i].name);

printf("输入物理、数学、英语、化学、美术分数:");
scanf("%d%d%d%d",&stu[n+i].physics,&stu[n+i].math,&stu[n+i].english,&stu[n+i].chemistry,&stu[n+i].art);
a=1.0*(stu[n+i].chinese+stu[n+i].math+stu[n+i].english+&stu[n+i].chemistry+&stu[n+i].art)/5;
stu[n+i].aver=a;
gets(x);

printf("继续输入?(Y/N):\n");
scanf("%c",&sign);
i++;
}
return(n+i);
}
void xianshi(Student stud[],int n)
{
int i ;
printf("----------------------------------------------------------\n");
printf("学号 姓名 物理 数学 英语 化学 美术 平均成绩 \n");
printf("----------------------------------------------------------\n");
for(i=0;i<n;i++)
{
printf("%-10s%-10s%-10d%-10d%-10d%-10d%-10.2lf\n",stu[i].num,stu[i].name,stu[i].physics,stu[i].math,stu[i].english,stu[i].chemistry,stu[i].art,stu[i].aver);

}
}

void chaxun_xingming(Student stud[],int n)
{ char s[20];

int i=0;
printf("输入姓名:");
scanf("%s",s);
while(strcmp(stu[i].name,s)!=0&&i<n) i++;
if(i==n)
{printf("not find!\n");
return; }
printf("他的姓名、学号是:%s %s\n",stu[i].name,stu[i].num);
printf("物理 数学 英语 化学 美术 平均成绩是:%d,%d,%d,%d,%d,%lf\n",stu[i].physics,stu[i].math,stu[i].english,stu[i].chemistry,stu[i].art,stu[i].aver);

}

void chaxun_pinjun(Student stud[],int n)
{ double s;

int i=0;
printf("输入平均成绩:");
scanf("%lf",&s);
while(stu[i].aver!=s && i<n) i++;
if(i==n)
{ printf("not find!\n");
return;

}
printf("他的学号是:%s\n",stu[i].num);
printf("他的姓名是:%s\n",stu[i].name);
printf("他的物理、数学、英语、化学、美术分数是:%d %d %d %d %d \n",stu[i].physics,stu[i].math,stu[i].english,stu[i].chemistry,stu[i].art);

}

void paixu_xuehao(Student stud[],int n)
{ int i,j,p,q,r,w,z;
double y;
char x[20],t[10];
for(i=0;i for(j=0;j if(strcmp(stud[j].num,stud[j+1].num)>0)
{ strcpy(t,stud[j].num);
strcpy(stud[j].num,stud[j+1].num);
strcpy(stud[j+1].num,t);
strcpy(x,stud[j].name);
strcpy(stud[j].name,stud[j+1].name);
strcpy(stud[j+1].name,x);
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].physics;stu[j].physics=stu[j+1].physics;stu[j+1].physics=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].chemistry;stu[j].chemistry=stu[j+1].chemistry;stu[j+1]chemistry=w;
z=stu[j].art;stu[j].art=stu[j+1].art;stu[j+1].art=z;
}
return;
}

void paixu_pingjun(Student stud[],int n)
{ int i,j,p,q,r,w,z;
double y;
char x[20],t[10];
for(i=0;i for(j=0;j if(stu[j].aver>stu[j+1].aver)
{ y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].physics;stu[j].physics=stu[j+1].physics;stu[j+1].physics=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].chemistry;stu[j].chemistry=stu[j+1].chemistry;stu[j+1]chemistry=w;
z=stu[j].art;stu[j].art=stu[j+1].art;stu[j+1].art=z;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);

}
return;
}
void paixu_physics(Student stud[],int n)
{ int i,j,p,q,r,w,z;
double y;
char x[20],t[10];
for(i=0;i for(j=0;j if(stu[j].physics>stu[j+1].physics)

{

y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].physics;stu[j].physics=stu[j+1].physics;stu[j+1].physics=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].chemistry;stu[j].chemistry=stu[j+1].chemistry;stu[j+1]chemistry=w;
z=stu[j].art;stu[j].art=stu[j+1].art;stu[j+1].art=z;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);

}
return;
}
void paixu_english(Student stud[],int n)
{ int i,j,p,q,r,w,z;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)

if(stu[j].english>stu[j+1].english)

{

y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].physics;stu[j].physics=stu[j+1].physics;stu[j+1].physics=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].chemistry;stu[j].chemistry=stu[j+1].chemistry;stu[j+1]chemistry=w;
z=stu[j].art;stu[j].art=stu[j+1].art;stu[j+1].art=z;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);

}
return;

}

void paixu_math(Student stud[],int n)
{ int i,j,p,q,r,w;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)

if(stu[j].math>stu[j+1].math)

{

y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].physics;stu[j].physics=stu[j+1].physics;stu[j+1].physics=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].chemistry;stu[j].chemistry=stu[j+1].chemistry;stu[j+1]chemistry=w;
z=stu[j].art;stu[j].art=stu[j+1].art;stu[j+1].art=z;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);

}
return;

}

void paixu_chemistry(Student stud[],int n)
{ int i,j,p,q,r,w,z;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++)

for(j=0;j<n-1-i;j++)

if(stu[j].chemistry>stu[j+1].chemistry)

{

y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].physics;stu[j].physics=stu[j+1].physics;stu[j+1].physics=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].chemistry;stu[j].chemistry=stu[j+1].chemistry;stu[j+1]chemistry=w;
z=stu[j].art;stu[j].art=stu[j+1].art;stu[j+1].art=z;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);

}

void paixu_art(Student stud[],int n)
{ int i,j,p,q,r,w,z;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++)

for(j=0;j<n-1-i;j++)

if(stu[j].art>stu[j+1].art)

{

y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].physics;stu[j].physics=stu[j+1].physics;stu[j+1].physics=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].chemistry;stu[j].chemistry=stu[j+1].chemistry;stu[j+1]chemistry=w;
z=stu[j].art;stu[j].art=stu[j+1].art;stu[j+1].art=z;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);

}
return;

}

int wenjian2(Student stud[],int n)
{ int i=0,num;
FILE *fp;
char filename[20];
printf("\t\t\tInput the filename:");
scanf("\t\t\t%s",filename);
if((fp=fopen(filename,"rb"))==NULL)
{ printf("\t\t\tcann't open the file\n");
printf("\t\t\t");
system("pause");
return(n);
}
fscanf(fp,"%d",&num);
while(i<num)
{
fscanf(fp,"%s %s %d %d %d %d %d %lf\n",stu[n+i].num,stu[n+i].name,&stu[n+i].physics,&stu[n+i].math,&stu[n+i].english,&stu[n+i].chemistry,&stu[n+i].art,&stu[n+i].aver);
i++;
}
n+=num;
fclose(fp);
printf("\t\t\tSuccessed!\n");
printf("\t\t\t");
system("pause");
return(n);
}

void wenjian1(Student stud[],int n)

{
int i=0;
FILE *fp;

char filename[20];

printf("Input the filename:");
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)

{
printf("cann't open the file\n");
return;
}
fprintf(fp,"%d\n",n);

while(i<n)
{
fprintf(fp,"%s %s %d %d %d %d %lf\n",stu[i].num,stu[i].name,stu[i].physics,stu[i].math,stu[i].english,stu[i].chemistry,stu[i].art,stu[i].aver);
i++;
}
fclose(fp);

printf("Successed!\n");

}

int menu()

{
int c;

do{
printf("\t\t****学生信息管理系统菜单****\n");
printf("\t\t 1. 编辑 \n");
printf("\t\t 2. 显示 \n");
printf("\t\t 3. 排序\n");

printf("\t\t 4. 文件 \n");
printf("\t\t 0. 退出 \n");
printf("************************************************************\n");
printf("\t\t\t请选择(0-6):");
scanf("%d",&c);
}while(c4);
return(c-0);

}

int bianji()
{
printf("\t\t 1. 录入\n");

printf("\t\t 按其它数字键退出 \n");
int i;
scanf("%d",&i);
return i;
}

int chaxun()
{
printf("\t\t 1. 按姓名查询\n");
printf("\t\t 2 .按平均成绩查询\n");

printf("\t\t 按其它数字键退出\n");
int i;
scanf("%d",&i);
return i;
}

int paixu()
{
printf("\t\t 1. 按学号\n");
printf("\t\t 2 .按物理成绩\n");
printf("\t\t 3 .按数学成绩\n");
printf("\t\t 4 .按英语成绩\n");
printf("\t\t 5 .按化学成绩\n");
printf("\t\t 6 .按美术成绩\n");
printf("\t\t 7 .按平均成绩\n");
printf("\t\t按其它数字键退出\n");

 int i;
  scanf("%d",&i);
  return i;

}

int wenjian()
{
printf("\t\t 1. 从文件中读入数据\n");
printf("\t\t 2 .将所有记录写入文件\n");

printf("\t\t 按其它数字键退出 \n");

int i;
scanf("%d",&i);
return i;
}

void main()

{
int n=0;
for(;;)
{
for(;;)
{
switch(menu())
{
case 1: switch(bianji())
{
case 1:n=shuru(stu,n);xianshi(stu,n); break;

       } break; 

case 2:xianshi(stu,n);break;
case 3:
switch(chaxun())
{
case 1:chaxun_xingming(stu,n);break;
case 2:chaxun_pingjun(stu ,n);break;

} break;
case 4: switch(paixu())
{
case 1:paixu_xuehao(stu,n);xianshi(stu,n); break ;

case 2:paixu_physics(stu ,n);xianshi(stu,n);break;
case 3:paixu_math(stu ,n);xianshi(stu,n); break;
case 4:paixu_english(stu ,n);xianshi(stu,n); break;
case 5:paixu_chemistry(stu ,n);xianshi(stu,n); break;
case 6:paixu_art(stu ,n);xianshi(stu,n); break;
} break;

case 5:
switch(wenjian())
{
case 1:n=wenjian2(stu,n);break;

           case 2:wenjian1(stu ,n);break;

       } break; 

   case 0: 
          exit(0);    
    } 
 }

}
}

1个回答

judithfj
judithfj   2018.03.01 13:52

应该是少了一个}括号 。
统计了下,{括号有43个,但}括号只有42个
重新梳理下代码结构吧。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!