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