为什么这个冒泡排序输出的是乱码

2025-04-26 19:57:20
推荐回答(2个)
回答1:

错误如下,已经指出:

内层的for循环中的判定条件是:n-1-i; 循环体中,t未初始化,所以会是未知的值。你将这三句倒过来写试试。

下面给你改正的你可以看看

#include
int main()
{
    void arrange(int a[],int n);
    int a[10],i;
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    arrange(a,10);
    return 0;
}
void arrange(int a[],int n)
{
    int i,j,t;
    for(i=0;i        for(j=0;j            if(a[j]>=a[j+1])
            {
                t=a[j+1];
                a[j+1]=a[j];
                a[j]=t;
            }
            for(i=0;i<10;i++)
                printf("%d ",a[i]);
}

回答2:

你确定你写的是冒泡排序法?冒泡排序不是这么写的吧
就a[j]=t;这句就能搞坏你大部分数据,因为此时t的值是不确定的