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

来源:6-5 数组的应用(一)

GETBETTER

2016-01-06 22:49

#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回答

  • 越飞越高
    2016-11-02 19:01:46

    #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;
    }

     

  • MarlboroKay
    2016-01-23 11:21:42

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

  • 相信自己会飞的猪
    2016-01-07 00:20:38

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

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

    但是答案是对的

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926025 学习 · 20793 问题

查看课程

相似问题