您的这段 C++ 代码存在几个问题: 1. 在 C++ 中,不允许使用变量来定义数组的大小,即 `int a[n];` 这种写法是不合法的。您应该使用动态内存分配(如 `new` 操作符)或者使用标准库中的容器(如 `vector`)。 2. 在输入数组元素的循环中,`cin>>a[n];` 应该改为 `cin>>a[i];` ,否则您一直输入到数组的最后一个位置,而不是当前位置 `i`。 以下是使用 `vector` 来修改后的代码示例: ```cpp #include <iostream> #include <vector> int main() { int n; std::cin >> n; std::vector<int> a; for (int i = 0; i < n; i++) { int num; std::cin >> num; a.push_back(num); } for (int i = 0; i < n; i++) { for (int m = 0; m <= i; m++) { if (a[m] > a[i]) { int q = a[m]; int w = a[i]; a[m] = w; a[i] = q; } } } for (int i = 0; i < n; i++) { std::cout << a[i] << " "; } return 0; } ``` [2024-10-29 16:58:20 | AI写代码神器 | 345点数解答]