结构体的问题
输入5个学生的信息,按分数从大到小排列,输出#include <stdio.h>
struct student
{
int grade;
char name[20];
int num;
char sex;
float scroe;
}students[5];
void change(struct student students[],int n);
void main()
{
int i;
for(i=0;i<5;i++)
{
printf("\n 年级:");
scanf("%d",&students[i].grade);
fflush(stdin);
printf("\n 姓名:");
scanf("%s",&students[i].name);
fflush(stdin);
printf("\n 学号:");
scanf("%d",&students[i].num);
fflush(stdin);
printf("\n 性别:");
scanf("%c",&students[i].sex);
fflush(stdin);
printf("\n 成绩:");
scanf("%lf",&students[i].scroe);
fflush(stdin);
}
change(students,5);
for(i=0;i<5;i++)
{
printf("\n 年级:%d",students[i].grade);
printf("\n 姓名:%s",students[i].name);
printf("\n 学号:%d",students[i].num);
printf("\n 性别:%c",students[i].sex);
printf("\n 成绩:%lf",students[i].scroe);
}
}
void change(struct student a[],int n)
{
int i,j,k;
struct student trmp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(students[k].scroe<students[j].scroe)
{
trmp=students[k];
students[k]=students[j];
students[j]=trmp;
}
}
}
编译无错,但是输入完信息后,打印出来的时候别的都显示,而所有成绩都是0.000000,麻烦帮我看下这个程序有什么问题没