gpt4 book ai didi

C++ 最大选择排序

转载 作者:太空宇宙 更新时间:2023-11-03 10:33:57 24 4
gpt4 key购买 nike

我已经开始学习c++了。 (我在学校学习应用数学)而且我必须学习编程。我刚刚用 C++ 写了一个最大选择排序。它应该按降序打印预定义数组的元素,但它不起作用。你能告诉我哪里出错了吗?

int* max(int *array)
{
int *max = array++;
while(*array)
{
if (*max<*array) *max = *array;
array++;
}
return max;
}

void change (int *what, int *to)
{
int *temp = what;
what =to;
to = temp;
}

void sort(int *array)
{
while(*array) change(array,max(array));
array++;
}


int _tmain(int argc, _TCHAR* argv[])
{
int A[] ={7,5,6,9,2,5,3,1,4,10,6,7,2,8};

sort (A);
int i =0;
while (A[i]) cout<<A[i++];

getchar();
return 0;
}

最佳答案

我看到的第一个问题是 while (*array) { ... } 不会在您想要的位置终止,因为超出数组最后一个元素的部分不确定为 0 或 NULL,或者如果您正在对包含 0 的数组进行排序,它可能会在数组的中间终止。

相反,你想说这样的话:

int A[] = { ... };
int element_count = sizeof(a)/sizeof(a[0]);
for (int i = 0; i < element_count; ++i) { ... }

关于C++ 最大选择排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8187906/

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