求最高分的代碼是對的 而最低分的為什么是錯的?
int high (int score[10])
{
??? int s,flag;
??? for(s=0;s<10;s++)
??? {
???? if(score[s]>score[s+1])
??????????? {
??????????????? flag=score[s+1];
??????????????? score[s+1]=score[s];
??????????????? score[s]=flag;
??????????? }
??????????? return score[s+1];
??? }
}
int low (int score[10])
{
??? int q,lag;
??? for(q=0;q<10;q++)
??? {
??????? if(score[q]<score[q+1])
??????? {
??????????? lag=score[q+1];
??????????? score[q+1]=score[q];
??????????? score[q]=lag;
??????? }
??????? return score[q+1];
??? }
}
2017-01-22
我試了一下,兩個都是錯的。。
score的下標應(yīng)為0~9,但程序運行中涉及到了score[10](好吧但是因為另一個錯誤沒有涉及)
return一句應(yīng)該放在for循環(huán)的外面,否則循環(huán)只會執(zhí)行一次
我不知道題主的思路有沒有問題,我還是說一下吧。一般的求最大值的思路(求a[0]~a[9]中的最大值):
定義一個變量m,初始化為a[0]
將a[1]與m比較,如果a[1]>m,則把m的值改為a[1]的值。此時m的值為a[0]~a[1]中的最大值
將a[2]與m比較,如果a[2]>m,則把m的值改為a[2]的值。此時m的值為a[0]~a[2]中的最大值
依次類推,直到比較a[9]與m,最后使得m的值為a[0]~a[9]的最大值
給段代碼參考:
最小值類似,把大小比較修改一下即可。不懂請追問。