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

请各位老师看看代码错在哪儿了,结果不对

#include <stdio.h>

int main()

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

    int sum=0;

    int i,j;

    int temp;

    float average;

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

    {

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

        {

            if(score[j]>score[j-1])

            {

                temp=score[j];

                score[j-1]=score[j];

                score[j]=temp;

            }

        }

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

        sum+=score[i];

    }

    
    average=sum/10;

    printf("考试的总分=%d\n",sum);

    printf("考试的平均分=%f\n",average);

    printf("考试的最高分=%d\n",score[0]);

    printf("考试的最低分=%d\n",score[9]);

    return 0;
}

运行结果:98 98 91 91 91 91 91 91 84 84 ...
怎么会把原来的数组数据给改了?

正在回答

2 回答

在第二个for语句中,交换score[j-1]和score[j]的值时,score[j-1]的值被覆盖了,应改为:temp=score[j-1];

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

比较粗心,非常感谢

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

举报

0/150
提交
取消

请各位老师看看代码错在哪儿了,结果不对

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