有没有人知道如何从热心者更改以下代码以允许用户输入(例如输入n,然后是n个整数)?输出这n个整数和中位数。 n是奇数和正数,小于100万。
来自enthusiasticgeek.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;
}
答案 0 :(得分:0)
使用:
int values[static or dynamic allocation dependent]
for (i=0;i<n;i++){
printf("Enter number:");
scanf(%d, value[i]);
}
而不是仅对值数组的值进行硬编码。
确保要么动态声明数组,要么静态地使其足够大以接受所需的整数数,1,000,000但这就是大量的内存。没有人会花那么多时间手动输入那么多数字。声称它在30个顶部可能是安全的。
或者如果您计划使用“define elements”部分,则只需要将values数组声明为6.