请大家看一下这个冒泡排序法哪里错了 我觉得没毛病啊

来源:6-12 综合练习

海问香00

2019-03-10 17:18

#include <stdio.h>

#define N 10

int d(int score[])

{

    int i;

    int j;

    for(i=8;i>=0;i++)

    {

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

        {

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

            {

                int mtc;

                mtc=score[j];

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

                score[j+1]=mtc;

            }

        }    

    }

    

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

    {

        if(i!=9)

        {

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

        }

        else

        {

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

        }

    }

    return 0;

}

int main()

{

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

d(score);

return 0;


写回答 关注

4回答

  • qq_慕标4273479
    2019-03-10 23:00:20
    已采纳

    排序父循环i--,不是自加

  • 慕田峪4256145
    2019-06-25 20:59:04

    我用的冒泡是这样写的

    #include<stdio.h>

    int main()

    {

                    int i[]={0,.7,2,3,5,4,1,6,9}

                    int a = sizeof(i)/sizeof(i[0])-1;//这个占的字符长度除以类型也就是数组里面的个数,-1是循环次数

                    iht b = 1;

                    int c;

                    while(b)

                    {

                                b = 0;//不能变成死循环对吧

                                for(c=0;c<a;c++)

                                {

                                            if(i[c]<i[c+1])

                                            {

                                                        buf       = i[c];

                                                        i[c]       = i[c+1];

                                                        i[c+1]   = buf;

                                                        b = 1; //如果有比较给b为真

                                             }

                                }

                                a--;//应为每次比较完之后最大的值会存在最前面,所以为了占内存?

                    }   

                    for(a=0;a<sizeof(i)/sizeof(i[0]);a++)

                    {

                                printf("%d\t",i[a]);

                    }

                    return 0;

                    getchar();//应为我用的是VS编译器.

    }

  • 慕田峪4256145
    2019-06-25 20:46:12

    把i++改成i--(这种细节我也老错)?

  • qq_山支惊蛰_0
    2019-03-16 12:23:46

    第一个for循环是死循环


C语言入门

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

926025 学习 · 20793 问题

查看课程

相似问题