亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

誰幫我改改代碼,再說說到底是哪里錯了?

#include?<stdio.h>
#define?N?10
int?sort(int?score[]){
????int?i,s,a;
????for(i=0;i<N;i++)
????{
????????if(socre[i]>score[i+1])
????????{
????????????
????????????s=score[i];
????????????score[i]=score[i+1];
????????????score[i+1]=score[i];
????????}
????????a+=score[i];
????}
????
}
int?max(int?score[]){
????return?score[N];
????
}
int?min(){
????return?score[0];
}
int?average(){
????return?a/N;
}
int?all(){
????return?a;
}
int?main()
{
????int?score[N]={67,98,75,63,82,79,81,91,66,84};
????return?0;
????printf("考試總分為%d\n",all);
????printf("考試的最高分為%d\n",max);
????printf("考試的最低分為%d\n",min);
????printf("考試的平均分為%d\n",average);
????printf("考試成績升序排序為%d\n",score);
}


正在回答

2 回答

首先,你的函數寫的有問題,首先在主函數這里,函數的調用需要參數的傳遞,因為需要對數組里的成績進行操作,但是你沒有,應該寫為all(score[10]);其次,在函數的編寫上及邏輯上有差入,你是希望通過函數sort對成績進行排序,后面的函數都應用排好序的數組對吧,那么在第七行你的score拼寫錯了,其次sort函數里,你的排序還不能達到效果,舉個例子你就會明白,以這道題為例,按照你的代碼,在排序的時候是這樣的,第一個和第二個比較不變,第二個和第三個比較,對調,這樣98到第三,75到第二,接著第三個和第四個比較,對調則得到63為第三個,但是你發現了嗎,63比前面兩個都小,但是63無法再往前排了,所以你的代碼可以說只完成了一次比較排序,應該在循環外面再加一個循環for(j=8;j>=0;j--)這樣把里面循環的條件改一下for(i=0;i<=i;i++),那就可以實現正常排序了;再者,你想要在其他函數使用這個排序好的數組那你就要將其進行傳遞,如果沒有參數傳遞,是沒辦法得到數組數據的。

希望采納,謝謝

1 回復 有任何疑惑可以回復我~
#1

俠客島的含笑 提問者

非常感謝!
2016-02-23 回復 有任何疑惑可以回復我~
#2

俠客島的含笑 提問者

for(i=0;i<=i;i++)這里是不是for(i=0;i<=j;i++)???這有點不理解
2016-02-23 回復 有任何疑惑可以回復我~
#3

liuliumrs 回復 俠客島的含笑 提問者

是的,不好意思,打的時候沒發現
2016-02-25 回復 有任何疑惑可以回復我~

參數傳遞,參數傳遞

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

誰幫我改改代碼,再說說到底是哪里錯了?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號