#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;
}