LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 710|回复: 7

请大家帮我看看这个简单的程序

[复制链接]
发表于 2003-7-12 09:35:47 | 显示全部楼层 |阅读模式
我是一名学生初学c,程序出错不知如何改int i,j;
#include<stdio.h>
struct student
{int num[10];
char name[10];
int score[4];
  } stu[4];
  main()
{FILE *f1,*f2,*f3,*f4;
FILE *ffp,*ph;
int a,b,k,n,temp;
float jl,yl,p;
void enterdata();
void save();
void fsave();
int max();
int min();


float pass();
float youxiu();
void sorted();
float avg();
enterdata();
save();
for(j=0;j<4;j++)
{a=max();
b=min();
p=avg();
jl=pass();
yl=youxiu();
printf("score[%d]:\nmax=%3d\tmin=%3d\tavg=%3.1f\tjigelv=%3.1f%  \t",j,a,b,p,100*jl);

printf("youxiulv=%3.1f%\n",100*yl);}
for(i=0;i<4;i++)
{for(k=0;k<4;k++)
{for(n=k+1;n<4;n++)
{if(stu.score[k]<stu.score[n])
{ temp=stu.score[k];
stu.score[k]=stu.score[n];
stu.score[n]=temp;}}}}


f1=fopen("f1","w");f2=fopen("f2","w");f3=fopen("f3","w");f4=fopen ("f4","w");
for(i=0;i<4;i++)
{ffp=fopen("file","w");
for(j=0;j<4;j++)
fwrite(&stu.score[j],sizeof(struct student),1,ffp);
fclose(ffp);
switch(i)
{case 0:f1=ffp;fclose(f1);break;
case 1:f2=ffp;fclose(f2);break;
case 2:f3=ffp;fclose(f3);break;
case 3:f4=ffp;fclose(f4);break;}

  }

}
void save()
{FILE *fp;
int i;
fp=fopen("f0","w");
for(i=0;i<4;i++)
fwrite(&stu,sizeof(struct student),1,fp);
fclose(fp);}




void test()
{FILE *fp;
fp=fopen("f0","r");
for(i=0;i<4;i++)
{fread(&stu,sizeof(struct student),1,fp);
printf("no:%s,name:%s,",stu.num,stu.name);
for(j=0;j<4;j++)
printf("score:%d,",stu.score[j]);
printf("\n");}
}

int  max()
{int max=0;
for(i=0;i<4;i++)
if(stu.score[j]>max)
max=stu.score[j];
return(max);
}

float pass()


{float sum=0;float jgl;
for(i=0;i<4;i++)
if(stu.score[j]>=60)
sum=sum+1;
jgl=sum/4;
return(jgl);
}
float youxiu()
{float num=0; float yxl;
for(i=0;i<4;i++)
if(stu.score[j]>=90)
num=num+1;
yxl=num/4;
return(yxl);
}
int min()
{int min=200;
for(i=0;i<4;i++)
if(stu.score[j]<min)
min=stu.score[j];
return(min);
}


void enterdata()
{for(i=0;i<4;i++)
{printf("\n Input score of student%d:\n",i);
printf("No:");
scanf("%s",stu.num);
printf("name:");
scanf("%s",stu.name);
for(j=0;j<4;j++)
{printf("score[%d]:",j);
scanf("%d",&stu.score[j]);}
}
}


float avg()
{int sum=0;  float avg;
for(i=0;i<4;i++)
sum=sum+stu.score[j];
avg=sum/4;
return(avg);}
出错信息
Compiling D:\PROGRAM\TC\TC\C1.C:
Error D:\PROGRAM\TC\TC\C1.C 2: Unable to open include file 'STDIO.H'
Error D:\PROGRAM\TC\TC\C1.C 9: Undefined symbol 'FILE' in function mai
Error D:\PROGRAM\TC\TC\C1.C 9: Undefined symbol 'f1' in function main
Error D:\PROGRAM\TC\TC\C1.C 9: Undefined symbol 'f2' in function main
Error D:\PROGRAM\TC\TC\C1.C 9: Invalid indirection in function main
Error D:\PROGRAM\TC\TC\C1.C 9: Undefined symbol 'f3' in function main
Error D:\PROGRAM\TC\TC\C1.C 9: Invalid indirection in function main
发表于 2003-7-12 09:54:55 | 显示全部楼层
tc?
是不是没设置目录参数(一般直接拷贝的都有这个毛病)
用options->directory设置一下include path、lib path等。
 楼主| 发表于 2003-7-12 10:08:36 | 显示全部楼层
Error D:\PROGRAM\TC\C1.C: Unable to create output file 'D:\PROGRAM\TC\PRO\C1.obj
又是怎么回事呀,是程序的问题,还是编译器的问题
发表于 2003-7-12 14:57:01 | 显示全部楼层
楼主的程序不用缩进。强。
发表于 2003-7-12 17:18:05 | 显示全部楼层
能看懂的人也强

还是用一下缩进好
另外说明自己哪里有问题
贴那么长的代码有几个人有时间
自由狼-台风 该用户已被删除
发表于 2003-7-12 19:43:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
自由狼-台风 该用户已被删除
发表于 2003-7-12 19:52:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2003-7-13 20:38:16 | 显示全部楼层

感谢

我很感谢大家对我的帮助
以前只是上学校的bbs,大四学长
走了后,讨论linux的人少了很多
我听别人介绍来到这里
确实有家的感觉,
这里的高手也很多
感谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表