-4

有谁知道如何将下面的代码从热心极客更改为允许用户输入(例如输入 n,然后输入 n 个整数)?输出这 n 个整数和中位数。n 为正数且小于 100 万。

从热心的 com 粘贴的代码:

#include <stdio.h>
#include <stdlib.h>

#define ELEMENTS 6

int values[] = { 40, 10, 100, 90, 20, 25 };

int compare (const void * a, const void * b)
{
  return ( *(int*)a - *(int*)b );
}

int main ()
{
  int n;
  qsort (values, ELEMENTS, sizeof(int), compare);
  for (n=0; n<ELEMENTS; n++)
  {   printf ("%d ",values[n]); }
  printf ("median=%d ",values[ELEMENTS/2]);
  return 0;
}
4

1 回答 1

0

利用:

int values[static or dynamic allocation dependent]
for (i=0;i<n;i++){
  printf("Enter number:");
  scanf(%d, value[i]);
}

而不仅仅是硬编码 values 数组的值。

确保您要么动态地声明数组,要么静态地使其足够大以接受您想要的整数数量,1,000,000 但那是大量的内存。没有人会花那么多时间手动输入那么多数字。将其声明为 30 顶可能是安全的。

或者,如果您打算使用“定义元素”部分,则只需将值数组声明为 6。

于 2012-08-08T16:23:56.173 回答