【发布时间】:2017-03-08 08:08:27
【问题描述】:
我创建了一个带有随机数的数组,然后它会按升序对数字进行排序,然后我想打印排序后数字的中位数,但我不知道我在做什么我的程序错了,它不会给我中位数。我知道这一定很简单,但我似乎无法弄清楚我做错了什么
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;
}
【问题讨论】:
-
您是否确认它们是按排序顺序排列的?您是否进行过任何类型的调试?如果你有,你可能会发现你写的排序函数不正确。但我会把它作为练习留给你去弄清楚。
-
欢迎来到 Stack Overflow!请展示您迄今为止的研究/调试工作。请先阅读How to Ask页面。