成绩系统菜单,要求一百个学生的成绩按平均成绩排序,输出。老是运行错误,乱码!

#include
#include
struct Student
{ long int num;
char name[20];
int sex;
int college;
float score[10];
double ave;
}Student[100]; //定义结构体数组Student

int main()
{ int i,j,sum=0,k,c[100];
float average[100],t;
FILE*fp;
if((fp=fopen("D:\Student_Info.txt","r"))==NULL) //以只读方式打开文本文件
{ printf("can not open file\n");
exit(0);
}
for(i=0;i<100;i++)
{
fread(&Student[i],sizeof(struct Student),100,fp);
printf("%d%s%d%d%f%f",Student[i].num,Student[i].name,Student[i].sex,Student[i].college,Student[i].score,Student[i].ave);

  }


 for(i=0;i<100;i++)
 {for(j=0;j<10;j++)
  {sum=sum+Student[i].score[j];
   printf("%d\n",Student[i].score[j]);
   printf("%d",sum);
  }
   average[i]=sum/10;
   Student[i].ave=average[i];

 }
   for(i=0;i<99;i++)
   {k=i;
     for(j=i;j<100;j++)
      { if(average[j]> average[k])
        {k=j;
         c[i]=k;
        }
         t=average[k];average[k]=average[i];average[i]=t;
      }
     for(i=0;i<100;i++)
     {printf("%d%s",Student[c[i]].num,Student[c[i]].name);
        for(j=0;j<10;j++)
        { printf("%f",Student[c[i]].score[j]);
        }
         printf("\n");
     }
        fclose(fp);
         return 0;
   }

}

https://zhidao.baidu.com/question/1386902012242422460.html