为了账号安全,请及时绑定邮箱和手机立即绑定

请大神看看平均分的算法对不对

为什么算出来的平均分是79.6?应该是78.6啊!

正在回答

3 回答

#include <stdio.h>
int sum(int score[])
{
    int sum=0;
    int i;
    for(i=0;i<10;i++)
    {
        sum+=score[i];
    }
    return sum;
}
int max(int score[])
{
    int max,i;
    max=score[0];
    for(i=0;i<10;i++)
    {
        if(score[i]>max)
            max=score[i];
    } 
    return max;
}
int min(int score[])
{
    int min,i;
    min=score[0];
    for(i=0;i<10;i++)
    {
        if(score[i]<min)
            min=score[i];
    }
    return min;
}
float ave(int score[])
{
    float ave;
    int i,sum=0;
    for(i=0;i<10;i++)
    {
        sum+=score[i];
    }
    ave=sum*0.1;
    return ave;
}
int dgr(int score[])
{
    int i,j,k,temp;
    for(i=0;i<10;i++)
    {
        for(j=9;j>i;j--)
        {
            if(score[j]>score[j-1])
            {
                temp=score[j-1];
                score[j-1]=score[j];
                score[j]=temp;
            }    
        }
    }
    printf("学生的考试成绩降序排序为:");
    for(k=0;k<10;k++)
    { 
        printf("%d ",score[k]);
    }
}
int main()
{
    int score[10]={67,98,75,63,82,79,81,91,66,84};
    printf("学生的考试总分为:%d分\n",sum(score));
    printf("学生的考试最高分为:%d分\n",max(score));
    printf("学生的考试最低分为:%d分\n",min(score));
    printf("学生的考试平均分为:%0.1f分\n",ave(score));
    dgr(score);
    return 0;
}


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

Aries的忧伤 提问者

试了,确实对了,非常感谢
2015-07-13 回复 有任何疑惑可以回复我~

赋过初值了,一样的结果,于是就把初值去掉了

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

int sum=0; 你没有初值

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

Aries的忧伤 提问者

赋过初值了,一样的结果,于是就把初值去掉了
2015-07-13 回复 有任何疑惑可以回复我~
#2

arlenhui 回复 Aries的忧伤 提问者

不一样,我试过了
2015-07-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请大神看看平均分的算法对不对

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信