假设我们的数组提供的元素很少:
arr[]={5,8,7,25,-2,2,25}
我们希望它可以像max,min一样交替打印:
arr[]={25,-2,25,2,8,5,7} //output
主要功能如下:
int main()
{
int arr[]={5,8,7,25,-2,2,25} ;
int res_size ;
int *res;
int n = sizeof(arr)/sizeof(arr[0]);
res=rearrange(arr, n, &res_size);
for(int i=0;i<res_size;i++)
printf("%d\t",res[i]);
return 0;
}
// complete the function..
int *rearrange(int*arr, int size, int *res_size)
{
//complete the body with proper return type...
}
我能够为它编写程序,但无法找到返回类型。所以我的输出与任何测试用例都不匹配。
请有人用特定的返回类型完成重新排列功能。 res_size
的意思是什么?
答案 0 :(得分:0)
您不需要重新排列函数中的res_size参数。如果你只是想修改你自己的数组,那么重新排列的返回类型应该是无效的。如果要创建数组的副本并对其进行修改,可以显式执行此操作并在复制的数组上调用重新排列,或者可以将重新排列的返回类型设置为一个完整的数组。
至于获取数组的算法,这里是伪代码: