Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(C程序)随机数数组程序,并按升序排序,然后求中值_C_Arrays_Sorting_Median - Fatal编程技术网

(C程序)随机数数组程序,并按升序排序,然后求中值

(C程序)随机数数组程序,并按升序排序,然后求中值,c,arrays,sorting,median,C,Arrays,Sorting,Median,我已经用随机数创建了一个数组,然后它将按升序对数字进行排序,然后我想打印排序后的数字的中间值,但我不知道我的程序中有什么错误,它只是不会给我中间值。我知道这一定很简单,但我似乎不知道我做错了什么 int main() { int *tenarray = (int *) malloc(sizeof(int) * SIZE); int i; int j; int num; int swap; int median; srand(time(NULL)); for (i = 0; i < S

我已经用随机数创建了一个数组,然后它将按升序对数字进行排序,然后我想打印排序后的数字的中间值,但我不知道我的程序中有什么错误,它只是不会给我中间值。我知道这一定很简单,但我似乎不知道我做错了什么

int main() 
{

int *tenarray = (int *) malloc(sizeof(int) * SIZE);
int i;
int j;
int num;
int swap;
int median;
srand(time(NULL));

for (i = 0; i < SIZE; i++)
{
    num = rand() % 100;
    tenarray[i] = num;
    printf("%d\n", tenarray[i]);
}

for (i=0; i<SIZE; i++)
{
    for (j=0; j<SIZE+1; j++)
    {
        if(tenarray[j] > tenarray[j+1])
        {
            swap = tenarray[j];
            tenarray[j] = tenarray[j+1];
            tenarray[j+1] = swap;

        }
    }
}


for(i=0; i<SIZE; i++)
{
    printf("Ascending bubble sort is: %d\n", tenarray[i]);

}

median = (tenarray[5]);
printf("median is: %d\n", median);

system("PAUSE");
return 0;
}
intmain()
{
int*tenarray=(int*)malloc(sizeof(int)*SIZE);
int i;
int j;
int-num;
国际互换;
整数中值;
srand(时间(空));
对于(i=0;i对于(i=0;i为什么您总是假设中值为“tenarray[5]”?这只在SIZE=11时有效,您应该这样做:

if(SIZE%2==1)
    median = tenarray[SIZE/2];
else
    median = (tenarray[SIZE/2] + tenarray[(SIZE/2)-1])/2;

您是否验证了它们是否按排序?是否进行过任何类型的调试?如果进行过,您可能会发现您编写的排序函数不正确。但我将把它作为一个练习留给您来解决。欢迎使用堆栈溢出!请显示您迄今为止的研究/调试工作。请先阅读第页。