請(qǐng)問下,為什么不是用for(j=9;j>=i;j--)
/*降序排列*/
? ?
? ? for(i=0; i<=8; i++)
? ? {
? ? ? ? for(j=9;j>i;j--)
? ? ? ? {
? ? ? ? ? ? if(score[j-1]<score[j])
? ? ? ? ? ? {
? ? ? ? ? ? ? ? jxpl=score[j];
? ? ? ? ? ? ? ? score[j]=score[j-1];
? ? ? ? ? ? ? ? score[j-1]=jxpl;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ??
? ? printf("%s","降序排列:");
? ??
? ? for(i=0;i<10;i++)
? ? {
? ? ? ? if(i!=9)
? ? ? ? printf("%d,",score[i]);
? ? ? ? else
? ? ? ? printf("%d",score[i]);
? ? }
為什么這里用?for(j=9;j>=i;j--) 得出的結(jié)果就不對(duì)呢?
2017-07-05
for(i=0;i<=8;i--) ?從這個(gè)式子中可以得到,score[]數(shù)組中有10 個(gè)元素 ?10個(gè)元素 9個(gè)空隙 ? 需比較9次 ?
這也是式子中 i<=8的緣由 ?所以 當(dāng)你進(jìn)行第一輪比較時(shí) 總共比較9次 ? 如果寫為for(j=9;j>=i;j--) 第一輪比較時(shí)i=0 在進(jìn)行時(shí) 就比較啦10次 ?是錯(cuò)的 ?希望對(duì)你有幫助 ? 我也剛學(xué) ?如果我說錯(cuò)啦 ?請(qǐng)指正。
2017-06-27
如果是 j=i 的話, 第一次循環(huán), j 從 9 到 0 (因?yàn)?i = 0),
而數(shù)組 score[j-1] 就會(huì)變?yōu)?score[-1] 發(fā)生越界