【发布时间】:2022-11-30 22:57:18
【问题描述】:
所以这是我为冒泡排序用户定义列表而编写的代码。当我使用 DevC++、CodeBlocks 和 VSCode 等应用程序运行时,它会崩溃(出现错误,“main.exe 已停止工作”)。但是当我使用网络编译器时,它工作得很好。 (应用程序仅在运行此代码时崩溃。它们能够顺利运行其他代码段)
int main()
{
int n;
int numbers[n];
cout << "How many numbers do you want to sort?\n";
cin >> n;
cout << "Enter the "<< n <<" values.\n";
for (int w = 0; w < n; w++)
{
cin >> numbers[w];
}
cout << "The unsorted list is: \n";
for (int m = 0; m < n; m++)
{
cout << numbers[m] << "\t";
}
for (int iterat = 0; iterat < n-1; iterat++)
{
for (int j = 0; j < n-1; j++)
{
if (numbers[j] > numbers[j + 1])
{
int temp = numbers[j];
numbers[j] = numbers[j + 1];
numbers[j + 1] = temp;
}
}
}
cout << "The sorted list is: \n";
for (int p = 0; p < n; p++)
{
cout << numbers[p] << "\t";
}
}
我是一名学生,我们目前正在学习排序算法,所以我向我的讲师和多位同学寻求帮助,但他们都对问题所在感到困惑,因为这应该是正确的。 请告诉我可能是什么问题以及如何解决它。
【问题讨论】:
-
int numbers[n]不是有效的 c++,即使n未初始化 -
@AlanBirtles 天哪,你是对的,我只需要在初始化 n 之后声明数组,非常感谢。现在可以用了
-
是的,如果您想要可变大小,请使用
std::vector而不是数组
标签: c++ bubble-sort