c语言问题求教各位,程序无法得出结果只能得到地址貌似,谢谢

#include
int*paixu(int a[],int n);
int main(void)
{
int number[12]={12,13,2,14,6,29,52,10,12,13,44,56};
int*p;
p=paixu(number,12);
for(int i=0;i printf("%d,",*(p+i));
return 0;
}
int*paixu(int a[],int n) 讲数组分成二部分
{
冒泡排序处理前6个数字
int s,w,temp1;
for(s=0;s {
for(w=0;w {
if(a[w]>a[w+1])
{
temp1=a[w];
a[w]=a[w+1];
a[w+1]=temp1;
}
else
continue;
}
}
冒泡排序处理后6个数字
int y,r,temp2;
for(y=0;y {
for(r=0;r {
if(a[6+r]>a[6+r+1])
{
temp2=a[6+r];
a[6+r]=a[6+r+1];
a[6+r+1]=temp2;
}
else
continue;
}
}
int m[12];
for(int h=0;h<n;h++) 将两部分在按顺序排一下
{
if(a[h]<a[6+h])
m[h]=a[h];
else
m[h]=a[6+h];
}
return m;
}

代码中返回的就是那个数组的地址 接受返回的那里用 int *array=paixu(arg);

可以用简单点的排序,你那个略复杂。

 #include<stdio.h>
int*paixu(int a[], int n);
int main(void)
{
    int number[12] = { 12, 13, 2, 14, 6, 29, 52, 10, 12, 13, 44, 56 };
    int size = 12;
    paixu(number, 12);
    for (int i = 0; i<size; i++)
        printf("%d,", *(number + i));
    return 0;
}
int *paixu(int a[], int n) 
{

    int i, j, temp;
    for (j = 0; j < n - 1; j++)
    for (i = 0; i < n - 1 - j; i++)
    {
        if (a[i] > a[i + 1])
        {
            temp = a[i];
            a[i] = a[i + 1];
            a[i + 1] = temp;
        }
    }
    return 0;
}