结构变量定义时,一定要加上struct
#include
struct student {
long int number;
char name[8];
float score[2];
};
void sort(struct student stud[],int n); //如这里,其它一样,已经改了
void main()
{
struct student stud[3];
int i,j;
for(i=0;i<3;i++)
{
scanf("%ld",&stud[i].number);
scanf("%s",stud[i].name);
for(j=0;j<2;j++)
scanf("%f",&stud[i].score[j]);
}
sort(stud,3);
//输出
printf("\n名次 学号 姓名 数学 英语\n");
for(i=0;i<3;i++)
{
printf("%d ",i+1);
printf("%ld ",stud[i].number);
printf("%7s ",stud[i].name);
for(j=0;j<2;j++)
printf("%7.1f",stud[i].score[j]);
printf("\n"); // 换行
}
}
void sort(struct student stud[],int n)
{
int i,j,min;
struct student t;
for(i=0;i
min=i;
for(j=i+1;j
min=j;
t=stud[i];
stud[i]=stud[min];
stud[min]=t;
}
}
这样正确了,不知有没有达到你预期的结果
#include
struct student {
long int number; // 学号
char name[8]; // 姓名
float score[2]; // 2门课程的成绩
};
void sort(student stud[],int n);//声明成绩排序函数
void main()
{
struct student stud[3]; //定义结构体数组
int i,j;
for(i=0;i<3;i++)
{
scanf("%ld",&stud[i].number);
scanf("%s",&stud[i].name);
for(j=0;j<2;j++)
scanf("%f",&stud[i].score[j]);
}
sort(stud,3);
//输出
printf("\n名次 学号 姓名 数学 英语\n");
for(i=0;i<3;i++)
{
printf("%d ",i+1);
printf("%ld ",stud[i].number);
printf("%7s ",stud[i].name);
for(j=0;j<2;j++)
printf("%7.1f",stud[i].score[j]);
printf("\n"); // 换行
}
}
void sort(student stud[],int n)
{
int i,j,min;
student t;
for(i=0;i
min=i;
for(j=i+1;j
min=j;
t=stud[i];
stud[i]=stud[min];
stud[min]=t;
}
}
不会