為什么打完成績(jī)降序這段會(huì)變成空白的結(jié)果?
int cjjx()
{
? ? int i,j,temp;
? ? int score[10]={67,98,75,63,82,79,81,91,66,84};
? ? for(i=0;i<10;i++)
? ? {
? ? ? ? for(j=9;j>=0;j++)
? ? ? ? {
? ? ? ? ? ? if(score[i]<score[j])
? ? ? ? ? ? temp=score[i];
? ? ? ? ? ? score[i]=score[j];
? ? ? ? ? ? score[j]=temp;
? ? ? ? }
? ? }
? ? ?printf("成績(jī)降序排列為:%d\n");
}
int main()
{
cjjx();
return 0;
}
2017-08-06
你的內(nèi)循環(huán)死循環(huán)了。
詳細(xì)分析:第一次內(nèi)循環(huán),i=0,score【9】和score【0】對(duì)比,這個(gè)可以;內(nèi)循環(huán)再次執(zhí)行代碼,j++后變成10,但是score數(shù)組中沒(méi)有下標(biāo)10 的元素,無(wú)法對(duì)比;內(nèi)循環(huán)第三次執(zhí)行代碼,j++后變成11……你的約束條件是j>=0,所以j會(huì)一直自加形成死循環(huán)。
建議修改:外循環(huán)i決定每次冒泡的元素?cái)?shù),第一次是10個(gè)元素,最小的元素排在最后,第二次是9個(gè)元素,最小的元素排在倒數(shù)第二個(gè),以此類推,所以外循環(huán)從9開(kāi)始,逐漸減小。內(nèi)循環(huán)j則是冒泡排序從第一個(gè)元素到最后一個(gè)元素,j自加,個(gè)數(shù)總會(huì)小于等于i個(gè)。