大神们看看哪错了,编译,组建都没问题,执行的时候总是出现cannot open file
#include"stdio.h"
#include"stdlib.h"
#define N 20
struct stuscore
{
int num;
char name[N];
float score;
} stus[100],a[100];
int main()
{
int i,k=0,j=0,t1=0,t2=0,t3=0,count=100;
float sum=0,ave=0,a1=0,a2=0,a3=0,a4=0,a5=0;
FILE * fp;
if((fp=fopen("e:\\stuin.dat","r"))==NULL)
{printf("cannot open file \n");
exit(0);
}
for(i=0;i<count;i++)
{
fscanf(fp,"%d\n%s\n%f\n",stus[i].num,stus[i].name,stus[i].score);
sum+=stus[i].score;
if(stus[k].score<=stus[i].score)
{ k = i ; }
}
for(i=0;i<100;i++)
{
if(stus[k].score = stus[i].score)
a[j].score = stus[i].score;
j++;
}
printf("\n成绩最高的学号,姓名,成绩 如下:\n");
for(i=0;i<100;i++)
{
printf("%d,%d,%d\n",a[i].num,a[i].name,a[i].score);
if(stus[i].score > ave)
{ t1++; }
else if(stus[i].score == ave)
{ t2++; }
else
{ t3++; }
}
printf("\n平均成绩:%6.2f\n",ave);
printf("\n其中高于平均成绩的人数为:%-5d人",t1);
printf("\n其中低于平均成绩的人数为:%-5d人",t2);
printf("\n其中等于平均成绩的人数为:%-5d人",t3);
for(i=0;i<100;i++)
{
if(stus[i].score >='90')
{a1++;}
else if(stus[i].score >='80'&&stus[i].score <='89')
{a2++;}
else if(stus[i].score >='70'&&stus[i].score <='79')
{a3++;}
else if(stus[i].score >='60'&&stus[i].score <='69')
{a4++;}
else
{a5++;}
}
printf("\n\n成绩为优秀的人数为:%-5d人,所占的百分比:%6.2f\n",a1,a1/count);
printf("\n\n成绩为良好的人数为:%-5d人,所占的百分比:%6.2f\n",a2,a2/count);
printf("\n\n成绩为中等的人数为:%-5d人,所占的百分比:%6.2f\n",a3,a3/count);
printf("\n\n成绩为及格的人数为:%-5d人,所占的百分比:%6.2f\n",a4,a4/count);
printf("\n\n成绩为不及格的人数为:%-5d人,所占的百分比:%6.2f\n",a5,a5/count);
FILE * fp1;
fp1=fopen("e:\\stuout.txt","w");
fprintf(fp,"\n成绩最高的学号,姓名,成绩 如下:\n");
for(i=0;i<100;i++)
{fprintf(fp,"%d,%d,%d\n",a[i].num,a[i].name,a[i].score); }
fprintf(fp,"\n其中高于平均成绩的人数为:%-5d人",t1);
fprintf(fp,"\n其中低于平均成绩的人数为:%-5d人",t2);
fprintf(fp,"\n其中等于平均成绩的人数为:%-5d人",t3);
fprintf(fp,"\n\n成绩为优秀的人数为:%-5d人,所占的百分比:%6.2f\n",a1,a1/count);
fprintf(fp,"\n\n成绩为良好的人数为:%-5d人,所占的百分比:%6.2f\n",a2,a2/count);
fprintf(fp,"\n\n成绩为中等的人数为:%-5d人,所占的百分比:%6.2f\n",a3,a3/count);
fprintf(fp,"\n\n成绩为及格的人数为:%-5d人,所占的百分比:%6.2f\n",a4,a4/count);
fprintf(fp,"\n\n成绩为不及格的人数为:%-5d人,所占的百分比:%6.2f\n",a5,a5/count);
fclose(fp);
return 0;
}
#include"stdio.h"
#include"stdlib.h"
#define N 20
struct stuscore
{
int num;
char name[N];
float score;
} stus[100],a[100];
int main()
{
int i,k=0,j=0,t1=0,t2=0,t3=0,count=100;
float sum=0,ave=0,a1=0,a2=0,a3=0,a4=0,a5=0;
FILE * fp;
if((fp=fopen("e:\\stuin.dat","r"))==NULL)
{printf("cannot open file \n");
exit(0);
}
for(i=0;i<count;i++)
{
fscanf(fp,"%d\n%s\n%f\n",stus[i].num,stus[i].name,stus[i].score);
sum+=stus[i].score;
if(stus[k].score<=stus[i].score)
{ k = i ; }
}
for(i=0;i<100;i++)
{
if(stus[k].score = stus[i].score)
a[j].score = stus[i].score;
j++;
}
printf("\n成绩最高的学号,姓名,成绩 如下:\n");
for(i=0;i<100;i++)
{
printf("%d,%d,%d\n",a[i].num,a[i].name,a[i].score);
if(stus[i].score > ave)
{ t1++; }
else if(stus[i].score == ave)
{ t2++; }
else
{ t3++; }
}
printf("\n平均成绩:%6.2f\n",ave);
printf("\n其中高于平均成绩的人数为:%-5d人",t1);
printf("\n其中低于平均成绩的人数为:%-5d人",t2);
printf("\n其中等于平均成绩的人数为:%-5d人",t3);
for(i=0;i<100;i++)
{
if(stus[i].score >='90')
{a1++;}
else if(stus[i].score >='80'&&stus[i].score <='89')
{a2++;}
else if(stus[i].score >='70'&&stus[i].score <='79')
{a3++;}
else if(stus[i].score >='60'&&stus[i].score <='69')
{a4++;}
else
{a5++;}
}
printf("\n\n成绩为优秀的人数为:%-5d人,所占的百分比:%6.2f\n",a1,a1/count);
printf("\n\n成绩为良好的人数为:%-5d人,所占的百分比:%6.2f\n",a2,a2/count);
printf("\n\n成绩为中等的人数为:%-5d人,所占的百分比:%6.2f\n",a3,a3/count);
printf("\n\n成绩为及格的人数为:%-5d人,所占的百分比:%6.2f\n",a4,a4/count);
printf("\n\n成绩为不及格的人数为:%-5d人,所占的百分比:%6.2f\n",a5,a5/count);
FILE * fp1;
fp1=fopen("e:\\stuout.txt","w");
fprintf(fp,"\n成绩最高的学号,姓名,成绩 如下:\n");
for(i=0;i<100;i++)
{fprintf(fp,"%d,%d,%d\n",a[i].num,a[i].name,a[i].score); }
fprintf(fp,"\n其中高于平均成绩的人数为:%-5d人",t1);
fprintf(fp,"\n其中低于平均成绩的人数为:%-5d人",t2);
fprintf(fp,"\n其中等于平均成绩的人数为:%-5d人",t3);
fprintf(fp,"\n\n成绩为优秀的人数为:%-5d人,所占的百分比:%6.2f\n",a1,a1/count);
fprintf(fp,"\n\n成绩为良好的人数为:%-5d人,所占的百分比:%6.2f\n",a2,a2/count);
fprintf(fp,"\n\n成绩为中等的人数为:%-5d人,所占的百分比:%6.2f\n",a3,a3/count);
fprintf(fp,"\n\n成绩为及格的人数为:%-5d人,所占的百分比:%6.2f\n",a4,a4/count);
fprintf(fp,"\n\n成绩为不及格的人数为:%-5d人,所占的百分比:%6.2f\n",a5,a5/count);
fclose(fp);
return 0;
}