#include
#include
struct Student
{
int num;
char name[20];
float score;
};
int main()
{
struct Student stu[100];
struct Student t;
int i=0,n;
int j,k;
scanf("%d",&n);
for(;i<n;i++)
{
scanf("%d",&stu[i].num);
gets(stu[i].name);
scanf("%.2f",&stu[i].score);
}
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(stu[j].score>stu[k].score)
k=j;
t=stu[k];
stu[k]=stu[i];
stu[i]=t;
}
for(i=0;i<n;i++)
{
printf("%3d %5s %6.2f\n",stu[i].num,stu[i].name,stu[i].score);
}
}
是不是沒達到你的效果?語句錯沒錯,編譯就知道。