代码无法尝试以不同方式进行冒泡排序
Code not working trying to do bubble sort in different way
#include <iostream>
using namespace std;
int main() {
int n, arr[n];
cin >> n;
int i, j;
int counter = 1;
for (i = 0; i < n; i++) {
cin >> arr[i]; // taking arr inputs
}
while (counter < n) {
for (i = 0; i < n - counter; i++) {
if (arr[i] > arr[i + 1]) {
j = arr[i]; // swapping numbers
arr[i] = arr[i + 1];
arr[i + 1] = j;
}
}
counter++;
}
}
我的代码只是退出,它没有接受任何输入或给出任何输出或错误。
我只是想这样做让我知道有什么错误不要改变方法
我尝试将 conter 更改为循环,但它没有用
试试冒泡排序
我们初学者需要团结起来。
您的代码中存在一些非常小的问题。
您的变量“n”未初始化。所以它有一个不确定的值。所以,一些东西。然后你尝试用这个“东西”来设置你的数组的大小。之后,您从用户那里读取尺寸。
另外。 VLA(可变长度数组),所以像“array[n]”这样的东西,其中“n”不是编译时常量是非法的。它不是 C++ 的一部分。一些编译器允许它作为扩展,但它是非法的 C++ 代码。但好消息是:替代品有所减少: std::vector
最后但同样重要的是,如果你想看到一些输出,那么你需要输出一些东西。因此,例如使用“std::cout << something”。
通过以上更改,您的代码可能如下所示:
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n = 0;
cin >> n;
std::vector<int> arr(n);
int i = 0, j = 0;
int counter = 1;
for (i = 0; i < n; i++) {
cin >> arr[i]; // taking arr inputs
}
while (counter < n) {
for (i = 0; i < n - counter; i++) {
if (arr[i] > arr[i + 1]) {
j = arr[i]; // swapping numbers
arr[i] = arr[i + 1];
arr[i + 1] = j;
}
}
counter++;
}
for (int k : arr) std::cout << k << ' ';
}
仍然不完美,但一开始还可以。
#include <iostream>
using namespace std;
int main() {
int n, arr[n];
cin >> n;
int i, j;
int counter = 1;
for (i = 0; i < n; i++) {
cin >> arr[i]; // taking arr inputs
}
while (counter < n) {
for (i = 0; i < n - counter; i++) {
if (arr[i] > arr[i + 1]) {
j = arr[i]; // swapping numbers
arr[i] = arr[i + 1];
arr[i + 1] = j;
}
}
counter++;
}
}
我的代码只是退出,它没有接受任何输入或给出任何输出或错误。 我只是想这样做让我知道有什么错误不要改变方法
我尝试将 conter 更改为循环,但它没有用
试试冒泡排序
我们初学者需要团结起来。
您的代码中存在一些非常小的问题。
您的变量“n”未初始化。所以它有一个不确定的值。所以,一些东西。然后你尝试用这个“东西”来设置你的数组的大小。之后,您从用户那里读取尺寸。
另外。 VLA(可变长度数组),所以像“array[n]”这样的东西,其中“n”不是编译时常量是非法的。它不是 C++ 的一部分。一些编译器允许它作为扩展,但它是非法的 C++ 代码。但好消息是:替代品有所减少: std::vector
最后但同样重要的是,如果你想看到一些输出,那么你需要输出一些东西。因此,例如使用“std::cout << something”。
通过以上更改,您的代码可能如下所示:
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n = 0;
cin >> n;
std::vector<int> arr(n);
int i = 0, j = 0;
int counter = 1;
for (i = 0; i < n; i++) {
cin >> arr[i]; // taking arr inputs
}
while (counter < n) {
for (i = 0; i < n - counter; i++) {
if (arr[i] > arr[i + 1]) {
j = arr[i]; // swapping numbers
arr[i] = arr[i + 1];
arr[i + 1] = j;
}
}
counter++;
}
for (int k : arr) std::cout << k << ' ';
}
仍然不完美,但一开始还可以。