这是正确的代码:
#include<stdio.h>
#include<stdlib.h>
struct student
{ int number;
char name[20];
int score;
}person[10];
int main()
{ struct student temp;
int m,i,j,flag=1;
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%d %s %d",&person[i].number,person[i].name,&person[i].score);
}
for(i=0;i<m-1;i++)
{
flag=1;
for(j=0;j<m-1-i;j++)
{
if(person[j].score>person[j+1].score)
{
temp=person[j+1];
person[j+1]=person[j];
person[j]=temp;
flag=0;
}
}
if(flag==1)
break;
}
for(i=0;i<m;i++)
printf("%d %s %d\n",person[i].number,person[i].name,person[i].score);
system("pause");
return 0;
}
然而当for(j=0;j<m-1-i;j++)变为for(j=0;j<m-1;j++)时最后输出结果时,有一组结构体数据会成为0 0,求大家指教,
相关分类