关于#C语言#冒泡排序。怎么改?

img

1、void ShowArr(int arr[], int num)
2、#include<math.h>

看看可以不

#include <stdio.h>
void sort(int t[],int n)
{
    int temp;
    int i;int j;
     for ( i = 0; i < n - 1; i++) 
    {
        for ( j = 0; j < n - 1 - i; j++) 
        {
            if (t[j] > t[j + 1]) 
            {
                temp = t[j];
                t[j] = t[j + 1];
                t[j + 1] = temp;
            }
        };
    }
}
void show(int arr[],int n)
{
    int j=0;
    while(j<n)
    {
        printf("%d  ",arr[j]);
        j++;
    }
    printf("\n");
}
int main()
{
    printf("请输入数组大小(<250):");
    int t[250];
    int n,i;
    scanf_s("%d",&n);
    printf("输入%d个数:",n);
    for(i=0;i<n;i++)
    {
        scanf_s("%d",&t[i]);
    }
    sort(t,n);
    show(t,n);
    return 0;
}

题主可能有思路,但是实现上出了一点儿小差错,以可以尝试一下下面的写法:

#include <stdio.h>
//冒泡排序
void Bubble_sort(int a[], int len) 
{
        int i, j, temp;
        for (i = 0; i < len - 1; i++)
                for (j = 0; j < len - 1 - i; j++)
                        // > 为升序排序 如果是降序排序用 <
                        if (a[j] > a[j + 1]) {
                                //通过中间变量的赋值实现位置的交换
                                temp = a[j];      
                                a[j] = a[j + 1];
                                a[j + 1] = temp;
                        }
}
//主函数
int main() 
{
        int a[] = {3,44,38,5,47,15,36,26,27,2,46,4,19,50,48};
        int len = (int)sizeof(a)/sizeof(*a);
        //调用冒泡排序函数进行排序
        Bubble_sort(a, len);
        int i;
        //循环输出排序后的结果:
        for (i = 0; i < len; i++)
            printf("%d ", a[i]);
        return 0;
}


希望对题主有所帮助!望采纳!