写一主函数输入一数组,写一子函数实现对该数组的冒泡排序并输出,请教各位。

写一主函数输入一数组,写一子函数实现对该数组的冒泡排序并输出(升序)。
运行效果:
请输入数组元素,用空格分隔:23 12 34 15 9 8 52 18 10 26
排序后的数组为: 8 9 10 12 15 18 23 26 34 52

第一行输入n的值表示数组有n个元素,第二行输入n个数据。

#include<stdio.h>
void sort(int n,int a[])
{
    int i,j,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;
            }
        }
    }
    for(i=0;i<n;i++)
       printf("%d ",a[i]);
}
int main()
{
    int a[100];
    int i,n;
    scanf("%d",&n);
    for(i=0;i<n;i++)
       scanf("%d",&a[i]);
    sort(n,a);
    return 0;
}

供参考:

#include <stdio.h>
void bbsort(int* a, int n)
{
    int i, j, t;
    for (i = n - 1; i > 0; i--) {
        for (j = 0; j < i; j++) 
            if (a[j] > a[j + 1])
                t = a[j], a[j] = a[j + 1], a[j + 1] = t;
    }
}
int main()
{
    int a[] = { 23, 12, 34, 15, 9, 8, 52, 18, 10, 26 }, i;
    bbsort(a, sizeof(a) / sizeof(a[0]));
    for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)
        printf(i ? " %d" : "%d", a[i]);
    return 0;
}