#4938. 一维数组--判断题

一维数组--判断题

以下C++代码的功能是:输入一个整数n(n≤10),然后输入n个整数存入数组a。程序会找到数组中的最大值和最小值,并交换它们的位置(若有多个相同的最值,只交换第一次出现的)。交换后,输出新数组。请判断代码是否正确?

#include <iostream>
using namespace std;

int main() {
    int n, a[11];
    cin >> n;
    for (int i = 0; i < n; i++) cin >> a[i];
    
    int max_pos = 0, min_pos = 0;//最大值,最小值位置
    for (int i = 1; i < n; i++) {
        if (a[i] > a[max_pos]) max_pos = i;
        if (a[i] < a[min_pos]) min_pos = i;
    }
    
    swap(a[max_pos], a[min_pos]);
    
    for (int i = 0; i < n; i++) cout << a[i] << " ";
    return 0;
}

{{ select(1) }}

  • 正确
  • 错误