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

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


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");


正在回答

3 回答

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

}


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

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括号里面比较的等号去掉即可!

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

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

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

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

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926021    人
  • 解答问题       20793    个

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

进入课程

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

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