猿问

调用函数数输出数组中的平均数和中位数问题

#include<stdio.h>

#define N 10

void intoscore(int score[]);

void sortscore(int score[],int count[]);

float averofscore(int score[]); 

int modeofscore(int count[]);

int main()

{

int score[N]={0},count[11]={0};

intoscore(score);

sortscore(score,count);

printf("aver=%d\n",averofscore(score));

printf("mode=%d",modeofscore(score));

}


void intoscore(int score[])

{

int i;

for(i=0;i<N;i++)

{

printf("please input your score:");

scanf("%d",&score[i]);

}

void sortscore(int score[],int count[])

{

int i;

for(i=0;i<N;i++)

{

switch(score[i])

{

case 1:count[1]++;break;

case 2:count[2]++;break;

case 3:count[3]++;break;

case 4:count[4]++;break;

case 5:count[5]++;break;

case 6:count[6]++;break;

case 7:count[7]++;break;

case 8:count[8]++;break;

case 9:count[9]++;break;

case 10:count[10]++;break;

}

}


float  averofscore(int score[])

{

int sum=0;int i;

for(i=0;i<N;i++)

{

sum+=score[i];

}

return (float)sum/N;

}


int modeofscore(int count[])

{

int max=count[1];int i,mode;

for(i=1;i<N;i++)

{

if(max<count[i])

{

max=count[i];

mode=i;

}

}

return mode;

}

不知为何调用的averofscore求平均值函数和modeofscore求众数函数都没有输出我想要的结果,调试了一下发现sum的值不是我所定义的0,求解

Leo也叫做夹子
浏览 1761回答 1
1回答

这都不会

printf("aver=%d\n",averofscore(score));看你main函数里这句话,能输出浮点数才怪了。算平均值那个函数应该是没错的。另外搞不清楚你到底是要求众数还是中位数。
随时随地看视频慕课网APP
我要回答