c语言难题
一个班学生,数据包括学号,姓名,五门课(英语,高数,马哲,计算机,电子技术)的成绩。要求按总分高到低排存到cj.dat中。并按学号小到大顺序打印出 以上是题目
#include<stdio.h>
struct Student
{
int num; //姓名
char name[20]; //名的最大长度为2
float score[5]; //5们课的成绩
}student[30]; //假设全班有30个人
int main()
{ float grade[30]; //30个同学的总成绩
printf("please input the students'num,name and score:\n");
for(int i=0;i<30;i++)
{
scanf("%d,%s",&student.num,&student.name );
for(int j=0;j<5;j++)
{
scanf("%f",&student.score[j]);
}
grade=student.score[0]+student.score[1]+student.score[2]+student.score[3]+student.score[4];
}
//总分由高到低存放到cj.dat中就不懂了
//冒泡法排序学号
for(i=0;i<29;i++)
for(int b=29;b>i;b--)
{
if(student.num<student[b-1].num)
{
int x;
float y;
x=student.num;
student.num=student[b-1].num;
student[b-1].num=x;
//学号改变了,其他的也要改变
y=grade;
grade=grade[b-1];
grade[b-1]=y;
}
}
//按顺序输出学生的信息
for(i=0;i<30;i++)
{
scanf("%d,%d",&student.num,&grade);
}
return 0;
}
编译时没有错误,但是运行时得不到想要的效果,调试也不知道问题出在哪,大家帮一下,谢啦