Look_y 2020-11-18 15:38 采纳率: 0%
浏览 4

用指针来接数组变量,用两层for循环编写冒泡排序,只运行最外层一层循环后就直接退出什么原因??

#include<stdio.h>
int main()
{
    int sort(int *, int );
    int i = 0;
    int a[6] = { 12,8,-8,2,1,0 };
    sort(a,6);
    for (i; i < 6; i++)
        printf("%d  ", a[i]);
    printf("\n");

}
int sort(int *p, int len)
{    
    int j = 0;
    int k = 0;
    int t;
    for (j; j < len - 1; ++j)
    {
        for (k; k < len - 1 - j; ++k)
        {
            if (p[k] > p[k + 1])
            {
                t = p[k];
                p[k] = p[k + 1];
                p[k + 1] = t;
            }
        }
    }
}

  • 写回答

3条回答 默认 最新

  • 旧时光~ 2020-11-18 15:59
    关注

    第二层循环变量k你放在了外面初始化 第二层第一次循环后k自增到了len-1后面的循环条件一直不成立

    把循环变量的初始化放在for的第一个表达式里 for(k=0;k<len-1-j;k++)

     

    评论

报告相同问题?