【发布时间】:2016-06-17 19:14:05
【问题描述】:
我想打印 shell 对包含 1000 个元素的数组进行排序的结果。该函数的类型为void,所以我想知道如何从函数中检索“返回”的值(不是真正返回,实际上是结果)。到目前为止,这是我的代码:
#include "stdafx.h"
#include <stdlib.h>
void shellsort(int v[], int n)
{
int gap, i, j, temp;
for (gap = n / 2; gap > 0; gap /= 2)
for (i = gap; i < n; i++)
for (j = i - gap; j >= 0 && v[j] > v[j + gap]; j -= gap)
temp = v[j];
v[j] = v[j + gap];
v[j + gap] = temp;
}
int main()
{
int i;
int my_array[1000];
for (i = 0; i < 1000; i++) {
my_array[i] = rand();
}
shellsort(my_array, 1000);
return 0;
}
【问题讨论】:
-
见鬼,“打印函数”是什么意思?
-
不清楚你在问什么。你只想打印出排序的元素?为什么不只是
for (i=0; i<1000; i++) { printf("%d\n", my_array[i]); },类似于填充元素的方式? -
我认为他们的意思是他们要打印返回值,但是没有返回值,这让他们感到困惑。
-
@Kusalananda 如果实践不佳,它在语法上是正确的。
-
@WeatherVane 没有块,算法是错误的,不是吗?这三个语句都属于它。这是一个标准的交换。
标签: c function return-value void