题目描述:

输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。

输入描述:


测试数据有多组,输入n(1<=n<=20),接着输入n个数。


输出描述:


对于每组输入,输出交换后的结果。


输入样例:

2
1 3

输出样例:

3 1

AC代码:

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    int a[n];
    int max_ans = -1e5;   //记录最大值
    int max_index;  //记录最大值所在下标
    int min_ans = 1e5;  //记录最小值
    int min_index;  //记录最小值所在下标
    for (int i = 0; i < n; i++)
    {
        cin >> a[i];
        if(a[i] > max_ans)
        {
            max_ans = a[i];
            max_index = i;
        }
        if(a[i] < min_ans)
        {
            min_ans = a[i];
            min_index = i;
        }
    }
    swap(a[min_index],a[max_index]);
    for (int i = 0; i < n; i++)
    {
        cout << a[i];
        if(i < n-1)
        {
            cout << " ";
        }
    }
    return 0;
}