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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么是升序而不是降序

#include <stdio.h>
int main()
{
??? int score[10]={67,98,75,63,82,79,81,91,66,84};
??? int m=0,j=0,sum=0;
??? for(m=0;m<10;m++)
??? {
??????? for(j=0;j<10;j++)
??????? {
??????????? if(score[m]<score[j])
??????????? {
??????????????? sum=score[j];
??????????????? score[j]=score[m];
??????????????? score[m]=sum;
???????????????
??????????? }
??????? }
??? }
??? for(m=0;m<10;m++)
??? {
??????? printf("score[%d]=%d\n",m,score[m]);
??? }
??? return 0;
}

這會(huì)使得大的在前面,小的在后面啊,哪里錯(cuò)了

正在回答

2 回答

是這樣的,比如就3個(gè)數(shù)字,4 6 5來說,執(zhí)行是? 4 6 5 ——6 4 5——4 6 5——4 5 6.?結(jié)果是升序排列的??墒悄阏J(rèn)為的大的在前面,小的在后面的情況是有前提的:就是小的原先在大的前面,比如 4 6,經(jīng)過交換編程6 4,是下降的。但是如果是原先是 6 4,經(jīng)過交換就是4 6 ,就是升序的了。比如4 6 5,第一次外循環(huán),就是4和6交換,變成6 4 5(由于6比5大,不會(huì)交換,因?yàn)榈谝淮未笱h(huán)只會(huì)交換一次,應(yīng)該能看懂吧)。但是當(dāng)?shù)诙未笱h(huán)時(shí),6和4交換,又變回4 6 5(第二次循環(huán)時(shí),由于6比5大,所以不會(huì)交換),可見,這2層循環(huán)其實(shí)是首先讓大的往前排,小的在后面,但是輪到后面的進(jìn)行循環(huán)時(shí),就會(huì)讓前面的比他大的和他進(jìn)行替換?;蛘呤沁@樣說吧,每次循環(huán)保證循環(huán)次數(shù)的編號(hào)的數(shù)字的前面都是比該數(shù)字小的。比如第一次變成6 4 5,保證6的前面都是比6小的。然后第二次變成4 6 5,保證第二個(gè)數(shù)6的前面都是比6小的。然后第三次變成4 5 6,保證第三個(gè)數(shù)6的前面都是比他小的。因此是降序排列。

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Hc丶 提問者

非常感謝!
2015-11-02 回復(fù) 有任何疑惑可以回復(fù)我~

我有個(gè)好方法 把”if(score[m]<score[j])“中的”<“改為”>“ ?,可能就正確了,有待驗(yàn)證哦!

【PS:其實(shí)這個(gè)for嵌套是有問題的,我沒有推演為什么你的程序能排序(其實(shí)程序是有問題的),但我很想知道結(jié)果,到時(shí)候告訴我】


1 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

為什么是升序而不是降序

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)