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

请问一下各位为什么我这里面的平均分没有精确到前两位和为什么最低分是-1000000多

#include <stdio.h>

int ZF(int score[]);

float PG(int score[]);

int ZG(int score[]);

int ZD(int score[]);

int PX(int score[]);

int main()

{

    int i;

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

    printf("总分为:%d\n",ZF(score));

    printf("平均分为:%2f\n",PG(score));

    printf("最高分为:%d\n",ZG(score));

    printf("最低分为:%d\n",ZD(score));

    PX(score);

    printf("考试成绩降序排序%d\n",PX(score));

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

    {

       if(i!=9) printf("%d,",score[i]);

       else printf("%d",score[i]);

    }    

    return 0;

}

int ZF(int score[])

{

    int i, sum;

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

    {

        sum+=score[i];

    }

    return sum;

}

float PG(int score[])

{

    float avg=0.0;

    avg=((float)ZF(score))/10;

    return avg;

}

int ZG(int score[])

{

    int i,max=score[i];

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

    {

        if(max<score[i])

        {

            max=score[i];

        }

    }

    return max;

}

int ZD(int score[])

{

    int i,mai=score[i];

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

    {

        if(mai>score[i])

        {

            mai=score[i];

        }

    }

    return mai;

}

int PX(int score[])

{

    int i,j,value=0;

    for(i=9;i>=0;i--)

    {

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

        {

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

            {

                value=score[j];

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

                score[j+1]=value;

            }

        }

    }

    return value;

}


提问者:风韵犹存的小明 2018-07-03 18:31

个回答

  • 慕数据8536699
    2018-07-03 21:33:17
    已采纳

    printf("平均分为:%.2f\n",PG(score));

    2前少了个点


     int i,mai=score[i];中mai=score[i]编译错误,应改为 int i=0;int mai=score[i];