#4955. 移动数组元素--判断题

移动数组元素--判断题

在一个不重复的数组中,请将这个数组的最小数和数组第一个数交换,最大数和数组最后一个数交换!输出移动位置后的数组!如一个长度为5的数组:6 7 1 10 4,按照题目要求交换之后的顺序为:1 7 6 4 10。

阅读以下代码判断是否能正确实现程序效果?()

#include<bits/stdc++.h>
using namespace std;
int main () {
    int a[110],n;
    cin>>n;
    for(int i=1; i<=n; i++) {
        cin>>a[i];
    }
    int x1=1,x2=1;
    for(int i=1; i<=n; i++) {
        if( a[i]<a[x1] ) x1=i;   //x1存储最小值的下标
        if( a[i]>a[x2] ) x2=i;   //x2存储最大值的下标
    }
    swap(a[1],a[x1]);   //将最小值和第一个位置的元素交换
    swap(a[n],a[x2]);  //将最大值和最后一个位置的元素交换
    for(int i=1; i<=n; i++) {
        cout<<a[i]<<" ";
    }
    return 0;
}

{{ select(1) }}

  • 正确
  • 错误