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

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

大佬看一下哪里有問題

#include <stdio.h>
#define N 10
int sumScore(int score[])
{
?int i, sum=0;
?for(i=0;i<N;i++)
?{
??sum+=score[i];
?}
?printf("總和為:%d\n",sum);
?return 0;
}

float avgScore(int score[])
{
?int i;
?float avger,sum=0;
?for(i=0;i<N;i++)
?{
??sum+=score[i];
?}
?avger=sum/10;
?printf("平均數為:%.1f\n",avger);
?return 0;
}
int maxScore(int score[])
{
?int i,temp=0;
?for(i=0;i<N;i++)
?{
??if(temp<score[i])
??{
???temp=score[i];
??}
?}
?printf("最大值為:%d\n",temp);
?return 0;
}
int minScore(int score[])
{
?int i,temp=score[0];
?for(i=0;i<N;i++)
?{
??if(temp>score[i])
??{
???temp=score[i];
??}
?}
?printf("最小值為:%d\n",temp);
?return 0;
}
int ordScore(int score[])
{
?int j,n;
??? for(n=N-1;n>0;n--)
??? {
??????? for(j=0;j<=n;j++)
??????? {
??????????? if(score[j]>score[j+1])
??????????? {
??????????????? int temp;
??????????????? temp=score[j];
??????????????? score[j]=score[j+1];
??????????????? score[j+1]=temp;
??????????? }
??????? }
??? }
??? int m;
??? for(m=N;m>0;m--)
??? {
??? ?printf("%d\n",score[m]);
?}
?return 0;
}
int main()
{
??? int score[N]={67,98,75,63,82,79,81,91,66,84};
??? sumScore(score);
??? avgScore(score);
??? maxScore(score);
??? minScore(score);
??? ordScore(score);
??? return 0;
}


正在回答

4 回答

排序

for(n=N-2;n>=0;n--){
????for(j=0;j<=N;j++){
????}
}
n=N-1數組下標越界了,n=9時,j=9,后面score[j+1]就越界了


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

我在你的ordScore里第一個循環for(n=N-1;n>0;n--)改成了n>=0,在我這就沒問題了

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

你那個1應該是最小值63才對

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

for(m=N-1;m>=0;m--)

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

qq_慕無忌6436193 提問者

還是不行,運行不出來
2019-08-02 回復 有任何疑惑可以回復我~
#2

qq_慕無忌6436193 提問者

我用DVC++運行,排序時一直有個 1
2019-08-02 回復 有任何疑惑可以回復我~
#3

小小疾飛 回復 qq_慕無忌6436193 提問者

其他函數沒出問題,就這個是吧?
2019-08-02 回復 有任何疑惑可以回復我~
#4

qq_慕無忌6436193 提問者 回復 小小疾飛

嗯,是的,就排序
2019-08-02 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消

大佬看一下哪里有問題

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

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

幫助反饋 APP下載

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

公眾號

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