有大神告訴我下我這代碼哪里錯了嗎
#include <stdio.h>
int all(int score[])
{
?? int i;
?? int sum=0;
?? for(i=0;i<10;i++)
?? {
?????? sum+=score[i];
?? }
?? return sum;
}
int most(int score)
{
??? int i,j;
??? for(i=8;i>=0;i--)
??? {
??????? for(j=0;j<=i;j++)
??????? {
??????????? if(score[j]>score[j+1])
??????????? {
??????????????? int temp;
??????????????? temp=score[j+1];
??????????????? score[j+1]=score[j];
??????????????? score[j]=temp;
??????????? }
??????? }
??? }
??? printf("排列之后順序為\n");
??? for(i=0;i<10;i++)
??? {
??????? if(i!=9)
??????? printf("%d,",arr[i]);
??????? else
??????? printf("%d",arr[i]);
??? }
??? printf("最低分為%d",arr[1]);
??? printf("最高分為%d",arr[9]);
}
int main()
{
??? int score[N]={67,98,75,63,82,79,81,91,66,84};
??? most();
??? printf("考試總分為%d,平均分為%d",(all),(all)/10);
??? return 0;
}
2017-11-06
你的程序本身有幾個問題,首先,你在定義函數的時候score后面沒有中括號[],這樣后面 你打score[i]他會提示找不到指針(編譯報錯說的,我也不懂);其次,你在定義得到most函數中用了未定義的arr[];再次,你most函數中第一個for循環條件寫錯“;”寫成“,”;還有你輸出總分和平均分的時候用的方式不對,你用(all)他會輸出all的ASCLL碼(我也不清楚,反正輸出一串不相干的數,應該是這樣),所以我用了定義值得方式;哦還有,你不等號打錯了;這些是程序本身的問題,還有就是輸出問題,降序排列score[j]<score[j+1]才執行換位,最小的是score[9],最大的是score[0],嗯,應該就這些吧=-=。
2017-11-07
這是我做這道題時敲的代碼。
2017-11-07
2017-11-07
我也是才自學入門的,一起努力吧
2017-11-07
你看看你復制粘貼的時候出了什么問題吧,還有我把sum和num定義在函數外表示他們倆是全局變量,如果定義在定義的函數里,輸出的時候它會顯示找不到sum和num的值
2017-11-07
2017-11-06