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

我应该怎么改?

https://img1.sycdn.imooc.com//5d5031ba00017f4713610581.jpg为什么这个代码的运行结果是降序排列:10个63,

正在回答

4 回答

试试把倒数第十三行的score[j]改成score[i]

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

我人晕了 提问者

改了确实是对的,谢谢大佬!
2019-08-18 回复 有任何疑惑可以回复我~

score[j]对应的只有一个值

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

#include <stdio.h>

int sum(int score[10])

{

    int i;

    int j=0;

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

    {

        j+=score[i];

    }

    return j;

}

int max(int score[10])

{

    int i,j;

    j=score[0];

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

    {

        if(score[i]>j)

        {

            j=score[i];

        }

    }

    return j;

}

int min(int score[10])

{

    int i,j;

    j=score[0];

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

    {

        if(score[i]<j)

        {

            j=score[i];

        }

    }

    return j;

}

float average(int score[10])

{

    int i;

    int j=0.0;

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

    {

        j+=score[i];

    }

    return (j+0.0)/10;

}

void gradeDown()

{

    printf("降序排列为:");

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

    int i,j,k;

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

    {

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

        {

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

            {

                k=score[j+1];

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

                score[j]=k;

            }

        }

    }

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

    {

        printf("%d ",score[j]);

    }

}

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("平均分:%.1f\n",average(score));

    gradeDown();

    return 0;

}

现在改成这样又全是98了


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

你把代码贴出来,我在你代码基础上改。

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

举报

0/150
提交
取消

我应该怎么改?

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