求解答,这个程序哪里有问题,我找了很久都没发现,谢谢
// 成绩管理.cpp : Defines the entry point for the console application.//
#include "stdafx.h"
struct Student
{
int number;
char name[10];
float cj[7];
float min,max,ave,total;
}stu[20];
int i,j,choice;
float deal[7][3];
float sum;
FILE *fp1;
FILE *fp2;
int main(int argc, char* argv[])
{
void student();
printf("********************成绩管理********************\n");
fp1=fopen("a.txt","r");
printf("输入学生信息:\n");
printf("学号 姓名 \t 高数 \t工图 \t英语 \tC语言 \t 航概 \t 体育 \t 思修 \t\n");
for(i=1;i<=20;i++){
fscanf(fp1,"%d%s",&stu[i].number,stu[i].name);
printf("%d %s \t",stu[i].number,stu[i].name);
for(j=1;j<=7;j++){
fscanf(fp1,"%f",&stu[i].cj[j]);
printf("%5.2f \t",stu[i].cj[j]);
}
printf("\n");
}
fp2=fopen("b.txt","w");
fprintf(fp2,"学号 姓名 \t 高数 \t工图 \t英语 \tC语言 \t 航概 \t 体育 \t 思修 \t 最高分\t 最得分\t 平均分\t 总分\t\n");
for(i=1;i<=20;i++){
stu[i].max=stu[i].cj[1];
stu[i].min=stu[i].cj[1];
stu[i].total=0;
for(j=1;j<=7;j++){
stu[i].total=stu[i].total+stu[i].cj[j];
if(stu[i].cj[j]>stu[i].max)
stu[i].max=stu[i].cj[j];
if(stu[i].cj[j]<stu[i].min)
stu[i].min=stu[i].cj[j];
}
stu[i].ave=stu[i].total/7;
}
for(i=1;i<=20;i++){
fprintf(fp2,"%d\t%s\t",stu[i].number,stu[i].name);
for(j=1;j<=7;j++)
fprintf(fp2,"%5.2f\t",stu[i].cj[j]);
fprintf(fp2,"%5.2f\t%5.2f\t%5.2f\t%5.2f\t\n",stu[i].max,stu[i].min,stu[i].ave,stu[i].total);
}
fprintf(fp2,"单科最高分、最得分、平均分:\n");
for(j=1;j<=7;j++){
deal[j][1]=sut[1].cj[j];//max
deal[j][2]=stu[1].cj[j];//min
for(i=1;i<=20;i++){
sum=sum+stu[i].cj[j];//总分
if(stu[i].cj[j]>deal[j][1])
deal[j][1]=stu[i].cj[j];
if(stu[i].cj[j]<deal[j][2])
deal[j][2]=stu[i].cj[j];
}
deal[j][3]=sum/20;//平均分
}
fprintf(fp2,"高数 \t工图 \t英语 \tC语言 \t 航概 \t 体育 \t 思修 \t \n");
fprintf(fp2,"最高分\v最低分\v平均分\v");
for(j=1;j<=3;j++)
for(i=1;i<=7;i++)
{
fprintf(fp2,"%5.2f\t",deal[i][j]);
fprintf(fp2,"\n");
}
/* printf("1--查询某学生成绩\n2--查询某学科成绩\n3--不及格信息统计\n4--成绩排名\n");
printf("请选择:\n");
scanf("%d",&choice);
switch(choice)
{
case 1:student();
*/
printf("Hello World!\n");
return 0;
}
/*fprintf(fp2,"单科最高分 最得分 平均分:\n");
for(j=1;j<=7;j++){
deal[j][1]=stu[1].cj[j];//max
deal[j][2]=stu[1].cj[j];//min
for(i=1;i<=20;i++){
sum=sum+stu[i].cj[j];//总分
if(stu[i].cj[j]>deal[j][1])
deal[j][1]=stu[i].cj[j];
if(stu[i].cj[j]<deal[j][2])
deal[j][2]=stu[i].cj[j];
}
deal[j][3]=sum/20;//平均分
}
fprintf(fp2,"高数 \t工图 \t英语 \tC语言 \t 航概 \t 体育 \t 思修 \t \n");
fprintf(fp2,"最高分\v最低分\v平均分\v");
for(j=1;j<=3;j++)
for(i=1;i<=7;i++)
{
fprintf(fp2,"%5.2f\t",deal[i][j]);
fprintf(fp2,"\n");
}*/红色部分哪里有问题啊?
[ 本帖最后由 冯jungle 于 2012-12-20 23:20 编辑 ]