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