注册 登录
编程论坛 C语言论坛

【新手求助】请问,为什么我这个起泡的程序运行出来这么奇怪的东西

tomatototo 发布于 2020-04-15 20:28, 2013 次点击

#include<stdio.h>
void main()
{
    void sort(float array[]);

    float a[6] = {1,2,3,4,5,6};
//    int i=6;
   
//    printf("Please inputer 9 numbers\n");
//    for (i = 0; i < 6; i++)
//        scanf_s("%f", &a[i]);

    sort(a);
}

void sort(float array[])
{
    int i, j;
    float tmp = 0;
    for (i = 0; i <5; i++)
    {
        for (j = i; j < 6;j++)
        if (array[j]>array[j + 1])
        {
            tmp = array[j + 1]; array[j + 1] = array[j]; array[j] = tmp;
        }
    }
    for (i = 0; i < 6; i++)
        printf("%f ", array[i]);
}
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
3 回复
#2
lin51616782020-04-15 20:32
        for (j = i; j < 6;j++)
        if (array[j]>array[j + 1])
        {
            tmp = array[j + 1]; array[j + 1] = array[j]; array[j] = tmp;
        }

j最大值 5
array[5+1] 越界
#3
tomatototo2020-05-03 15:55
回复 2楼 lin5161678
谢谢/谢谢
#4
qing_yx2020-05-08 09:43
for (i = 0; i <5; i++)
    {
        for (j = 0; j < 5-i; j++)
        if (array[j]>array[j + 1])
        {
            tmp = array[j + 1]; array[j + 1] = array[j]; array[j] = tmp;
        }
    }
冒泡循环弄错了吧。
1