C语言函数调用关于数组的返回

来源:百度知道 编辑:UC知道 时间:2024/05/26 01:07:05
#include<stdio.h>
main()
{
……;
order(a[N],count);//在这个地方调用排序(地方一)
……
}

int order(int a[],int count) //数组按从小到大排序
{
int i,j,x;
for(i=0;i<count;i++)
for(j=i+1;j<count;j++)
if(a[i]<a[j])
{
x=a[i];
a[i]=wa[j];
a[j]=x;
}
return **;//(地方二)
}

地方一和地方二要怎么写,才能在主函数里得到一个排好序的数组?
返回的应该是地址吗?
我需要返回排好序的数组,因为主函数的下面要用。
我想是不是可以把数组定义为全局变量。

还有啊,我这个冒泡法是从大到小的,给写错了,嘿嘿

这个不需要返回个数组!

你只要在主函数中,这样调用 order(a,count); 就行了!
其中a是数组名,count是数组大小。就是把数组的地址传给函数,
这样在排序函数中操作的就是主函数中的数组了

另外兄弟,我发现你的排序算法好像是错误的吧,给你一个程序参考:
void sort(int arr[],int n)
{
//冒泡法非递减排序
int i,j,temp;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(arr[j]>arr[j+1])
temp=arr[j],arr[j]=arr[j+1],arr[j+1]=temp;

}
}

你按照上面的 调用方式,就相当于返回了排序好的数组呀!!!!!!!
因为传的是地址值!,你如果把数组声明为全局变量,就根本不需要往排序的函数中传递数组了

不用返回了,你这里函数里直接对数组元素进行操作,调用完之后a就是排好的

#include<stdio.h>
main()
{
int a[count];
……;
order(a,count);//在这个地方调用排序(地方一)
……
}

void order(int a[],int count) //数组按从小到大排序
{
int i,j,x;
for(i=0;i<count;i++)
for(j=i+1;j<count;j++)
if(a[i]<a[j])
{
x=a[i];
a[i]=wa[j];
a[j]=x;
}
}

比如说你定义了一个数组,如int array[50];
地方1,用数组名作为参数传递
函数调用改为:order(a