降序無效為何?
int?rankS(int?score[]){ ????int?i,j,temp; ????for(i=0;i<=N-2;i++)???/*?N為10?*/ ????{ ????????for(j=N-1;j>=i;j--) ????????{ ????????????if(score[i]<score[j]){ ????????????????temp?=?score[i]; ????????????????score[i]?=?score[j]; ????????????????score[j]?=?temp; ????????????} ????????} ????} ???? ????printS(score); }
2015-10-18
算法錯(cuò)了。
降序可以采用這樣的算法:
先讓最后一個(gè)數(shù)和它前面的數(shù)相比較,比前面那個(gè)小的話,就和前面的互換位置,再讓倒數(shù)第二個(gè)數(shù)和前面的數(shù)比較...一直比較到前兩個(gè)數(shù),這樣比較一輪下來,最前面的那個(gè)數(shù)肯定是最小的。這就是一次內(nèi)循環(huán)。
再次從最后一個(gè)數(shù)開始,讓其與前面的數(shù)比大小,把更小的換到前面......這次要比到第二個(gè)數(shù)(因?yàn)榈谝粋€(gè)數(shù)已經(jīng)是最小的了),這樣第二個(gè)數(shù)就是除第一個(gè)數(shù)以外最小的了。這是第二次內(nèi)循環(huán)。
這樣的內(nèi)循環(huán)一共要進(jìn)行N-1次,外層循環(huán)就是控制這N-1的。