大一基础c语言,冒泡排序法可以这样写吗

我写了一个冒泡排序法的函数,就是对任意一个数组,将参数输入进去之后自动排序,最后输出排序后的数组。像这样的函数是有返回值的函数还是没有返回值的函数呢

void bubble(float a[],int n)

{

    float o=0;

    int i;
    for (i = 0; i <= n-2; i++)
    {
        if (a[i] >= a[i+1])
        o = a[i+1];
        a[i + 1] = a[i];
        a[i] = o;
        
    }

你这只是进行了一趟排序,冒泡排序是双循环
另外if下面的3行都是if代码块内容,要用大括号括起来

void bubble(float a[],int n)
{
    float o=0;
    int i,j;
    for(j=0;j<n-1;j++)
    for (i = 0; i <n-i-j; i++)
    {
        if (a[i] >= a[i+1])
        {
        o = a[i+1];
        a[i + 1] = a[i];
        a[i] = o;
        }
    }
}

有点问题。void类型是不需要返回值的。

void bubble(float n,int a[])
{
    int i,j;
    float temp;
    for(i=0;i<n-1;i++)//n个数的数列总共扫描n-1次
       {
            for(j=0;j<n-i-1;j++)//每一趟扫描到a[n-i-2]与a[n-i-1]比较为止结束
           {
                if(a[j]>a[j+1])//后一位数比前一位数小的话,就交换两个数的位置(升序)
                {
                   temp=a[j+1];
                   a[j+1]=a[j];
                   a[j]=temp;
                }
           }
       }
}