gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 19:37:08 25 4
gpt4 key购买 nike

我创建了一个包含随机数的数组,然后它将按升序对数字进行排序,然后我想打印排序后的数字的中位数,但我不知道我在做什么我的程序错误,它只是不会给我中位数。我知道这一定是很简单的事情,但我似乎无法弄清楚我做错了什么

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;
}

最佳答案

为什么你总是假设中位数是“tenarray[5]”?这仅在 SIZE=11 时有效,你应该这样做:

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

关于c - (C程序)随机数数组程序,并按升序排序,然后求中位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40254137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com