问答详情
源自:6-12 综合练习

为什么没有冒泡排序成功啊


int down()

    {

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

        int j,k,a;    //循环变量

        int top;    //最高分

        int low;    //最低分

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

        {

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

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

            {

                int temp;

                temp=score[j];

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

                score[j+1]=temp;

            }

        }

        printf("考试成绩排序:\n");


提问者:慕粉2113246 2019-03-11 23:30

个回答

  • 慕码人9181536
    2019-03-14 00:04:29

    #include <stdio.h>

    int main()

    {

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

        int sum=0;

        double index=0;

        int temp;

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

        {

            sum+=score[i];

            index++;

        }

        printf("总分:%d\n",sum);

        printf("平均分:%0.2f\n",sum/index);

        for(int j=0;j<9;j++)

        for(int k=0;k<9-j;k++)

        {

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

            {

            temp=score[k];

            score[k]=score[k+1];

            score[k+1]=temp;

            }

        }

        printf("最高分:%d\n",score[0]);

        printf("最低分:%d\n成绩降序排列:",score[9]);

        for(int n=0;n<10;n++)

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

        return 0;

    }


  • 0Yeah
    2019-03-12 15:51:09

    int down()

        {

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

            int j,k,a;    //循环变量

            int top;    //最高分

            int low;    //最低分

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

            {

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

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

                {

                    int temp;

                    temp=score[j];

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

                    score[j+1]=temp;

                }

            }

            printf("考试成绩排序:\n");

    把两个for括号里面比较的等号去掉即可!

  • qq_慕瓜4306454
    2019-03-12 13:26:56

    在for(j=9;j>=0;j--)当中j=8。

    因为第二层循环中k=0了,如果j=9则需要排十次序

    一共十个成绩,只需要拍九次