运行不成功有啥问题?
加了算平均数的部分,计算的和也会翻一倍,是为啥
2017-12-21
你没把sum 归零,在计算平均值时又计算了一遍,正确程序如下
#include <stdio.h>
#define N 10
int sum;
int max,min,ave;
int getsum(int score[])
{
int i;
sum=0;
for(i=0;i<N;i++)
{
sum+=score[i];
}
return sum;
}
int average(int score[])
{
ave=getsum(score)/N;
return ave;
}
int sortscore(int score[])
{
int i,j;
int temp;
for(i=8;i>=0;i--)
{
for(j=0;j<=i;j++)
{
if(score[j]>score[j+1])
{ temp=score[j];
score[j]=score[j+1];
score[j+1]=temp;
}
}
}
max=score[9];
min=score[0];
return max,min;
}
void descendscore(int score[])
{
int i,j;
int temp;
for(i=8;i>=0;i--)
{
for(j=0;j<=i;j++)
{
if(score[j]>score[j+1])
{ temp=score[j];
score[j]=score[j+1];
score[j+1]=temp;
}
}
}
for (i=0;i<=N-1;i++)
printf(" %d\t",score[i]);
}
int main()
{
int score[N]={67,98,75,63,82,79,81,91,66,84};
getsum(score);
sortscore(score);
average(score);
printf("总分是%d\n",sum);
printf("最高分是%d\n",max);
printf("最高分是%d\n",min);
printf("平均分是%d\n",ave);
descendscore(score);
return 0;
}
举报