问答详情
源自:6-12 综合练习

输出结果总成绩是786,可是平均分却是78,为什么


#include <stdio.h>

int zongfen(int score[])

{

    int sum=0;

    int i;

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

    {

        sum+=score[i];

    }

    return sum;

}

float Ave(int sum,int n)

{

    float ave;

    ave=sum/n;

    return ave;

}

int Max(int score[])

{

    int max=score[0];

    int i=1;

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

    {

        if(max<score[i])

        max=score[i];

    }

    return max;

}

int Min(int score[])

{

    int min=score[0];

    int j;

    for(j=1;j<10;j++)

    {

        if(min>score[j])

        min=score[j];

    }

    return min;

}

void shunxu(int score[])

{

int i,j,k;

int t;

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

{

for(j=0;j<10-i;j++)

{

if(score[j]<score[j+1])

{

t=score[j];

                score[j]=score[j+1];

   score[j+1]=t;

}

}

}

for(k=0;k<10;k++)

{

printf("%-4d",score[k]);

}

}


int main()

{

    int score[10]={67,98,75,63,82,79,81,91,66,84};

    int sum,min,max;

float ave;

    sum=zongfen(score);

    ave=Ave(sum,10);

    max=Max(score);

    min=Min(score);

printf("总成绩是%d\n",sum);

printf("平均分是%f\n",ave);

printf("最高分是%d\n",max);

printf("最低分是%d\n",min);

shunxu(score);

    return 0;

}

   


提问者:微小的人 2017-10-06 21:00

个回答

  • kanasm
    2017-11-13 17:21:04

    整型除以整型,结果也为整形,所以要把平均数定义成浮点型。

    float Ave;

    Ave=(sum+0.0)/n;            //+0.0的操作是为了把整型转化成浮点型

    return Ave;

  • 慕函数6491478
    2017-10-07 06:37:18

    在程序中不遵循四舍五入,而且两个整数的商一定为整数,所以结果是78不是78.6或79