问答详情
源自:6-12 综合练习

有没有大佬解释一下这个?我不太明白

int d()

{

int score[10]={67,98,75,63,82,79,81,91,66,84};

int x , y , z ;

for(x = 0 ; x < 9 ; x++)

{

for(y = 0 ; y < 9 - x ; y++ )

if(score[y] > score[y + 1])

{

z = score[y] ;

score[y] = score[y + 1] ;

score[y + 1] = z ;

}

}

printf("考试成绩降序如下:\n") ;

for(y = 0 ; y <10 ; y++ )

{

printf("%d " , score[y] ) ; 

}

printf("\n\n") ;

return 0 ;


}


提问者:慕斯5410128 2021-04-28 11:40

个回答

  • 蒙上灰的梦想
    2021-04-28 14:55:59

    这是冒泡排序法。

    外层循环表示第几轮排序,内层排序表示当前轮数第几次排序。

    第一轮从第一个元素到倒数第二个元素,相邻的元素作比较,如果前面一个大,交换两数的位置,以此类推。结束之后,最大的数已经找出来并放到最后一位了。

    第二轮从第一个元素到倒数第三个元素,相邻的元素作比较,如果前面一个大,交换两数的位置,以此类推。结束之后,最大的数已经找出来并放到倒数第二位了。

    。。。。。。