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

各位大神,为什么这个代码输出结果最后一个是82呢?输出结果98 91 82 81 79 75 67 66 63 82

#include <stdio.h>
int main()
{
    int score[9]={67,98,75,63,82,79,81,91,66,84};
    int i;
    int j;
    for(i=8;i>0;i--)
    {
        for(j=0;j<=i;j++)
        {
            if(score[j]<score[j+1])
            {
                int mid;
                mid=score[j];
                score[j]=score[j+1];
                score[j+1]=mid;

            }

        }

    }
    for(i=0;i<10;i++)
    {
        printf("%d\n",score[i]);
    }
    return 0;
}

正在回答

3 回答

#include <stdio.h>
int main()
{
    int score[10]={67,98,75,63,82,79,81,91,66,84};  //数组定义长度应该大于或者等于数组的数字个数
    int i;
    int j;
    for(i=8;i>0;i--)
    {
        for(j=0;j<=i;j++)
        {
            if(score[j]<score[j+1])
            {
                int mid;
                mid=score[j];
                score[j]=score[j+1];
                score[j+1]=mid;

            }

        }

    }
    for(i=0;i<10;i++)
    {
        printf("%d\n",score[i]);
    }
    return 0;
}

 

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

把score[] 里的84去掉,然后再把第一个for循环里的 i = 8 改成 7

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

首先 你的数组 声明就错了 int x[n]  这里的n应该是一共多少个内容 10个 就应该 n=10;

其次 你的i比较次数 应该等于9  因为每个都要比较的话应该9次 ,这两个地方改了以后就对了  我说的术语不太正确

但是答案是对的

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

举报

0/150
提交
取消

各位大神,为什么这个代码输出结果最后一个是82呢?输出结果98 91 82 81 79 75 67 66 63 82

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