猿问

关于结构体的冒泡排序问题

这是正确的代码:

#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,求大家指教,

qq_新生_10
浏览 1264回答 0
0回答
随时随地看视频慕课网APP
我要回答