酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

#include<iostream> using namespace std; int main() { int n; cin>>n; int a[n]; for (int i=0;i<n;i++) { cin>>a[n]; } for (int i=0;i<n;i++) { for (int m=0;m<=i;m++) { if (a[m]>a[i]) { int q=0,w=0; q=a[m]; w=a[i]; a[m]=w;a[i]=q; } } } for (int i=0;i<n;i++) {cout<<a[i]<<" "; } return 0; } 为什么输出有问题

您的这段 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点数解答]

相关提问