第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

排序總排不對

#include <stdio.h>

int main()

{

int nl[]={2,5,3,1,8};

int i,j;

? ? printf("****************排序前********************\n") ;

for(i=0;i<5;i++)?

{

? ?if(i!=4)

? ? ? ? printf("%d",nl[i]);

else

printf("%d",nl[i]);

}

? ? for(i=5; i>=0; i--)

? ? {

? ? for(j=0;j<5;j++)

? ? {

? ? if(nl[j]>nl[j+1])

? ? {

? ? int temp;

? ? temp=nl[i];

? ? nl[i]=nl[i+1];

? ? nl[i+1]=temp;

? ? }

? ?}

? ? }

? ? printf("****************排序后********************\n");

for(i=0;i<5;i++)?

{

if(i!=4)

? ? ? ? printf("%d",nl[i]);

else

printf("%d",nl[i]);

}

return 0;

}

? ?這個哪有問題呢 ?排序不對

正在回答

2 回答

因為冒泡法的每一次排序實際上都是把最大(或最?。┑囊粋€排到最后(或最前),也就是所謂的升序降序。

所以外層循環(huán)用于控制冒泡后剩下數(shù)的個數(shù),比如八個數(shù)我們排了最大的放在了后面,第二次就在前七個數(shù)里面排出最大的,依次這樣到最后一個數(shù)。而內層循環(huán)則是用來給相領兩個數(shù)做比較的,本題是把大的數(shù)放在后面。當我們排了一個最大數(shù)后,第二次排剩下的最大數(shù)就不再使用它了,因此內層循環(huán)的次數(shù)是不是應該小于等于外層循環(huán)的剩下的待排序的數(shù)的個數(shù)呢?在代碼中也就是 j<=i;了。


5 回復 有任何疑惑可以回復我~
#1

慕運維4747063

這個解釋真的很棒
2018-07-27 回復 有任何疑惑可以回復我~

第一個for循環(huán)里i=5,改為i=3,

往下看,

把j<5改為j<=i,

再接著往下看,

?temp=nl[i];

? ? nl[i]=nl[i+1];

? ? nl[i+1]=temp;

改為

?temp=nl[j];

? ? nl[i]=nl[j+1];

? ? nl[j+1]=temp;

給個最佳答案行不行呢~

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926997    人
  • 解答問題       21533    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

排序總排不對

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號