1034: 交换最值的位置 [水题]
时间限制: 1 Sec 内存限制: 128 MB提交: 379 解决: 132 统计
题目描述
给定一个序列,现在让你交换序列最大值和最小值的位置,并输出交换后的序列。
输入
第一行输入一个整数
T
,代表有
T
组测试数据。
每组数据第一行输入一个整数N,代表序有N个元素。接下来一行,依次输入N个整数a[].
注:
1<=T<=10,1<=N<=10000,1<=a[]<=1000001<=T<=10,1<=N<=10000,1<=a[]<=100000。
保证只有一个最小值以及最大值。
输出
输出交换最值后的序列,每两个元素之间有一个空格,最后一个元素后面没有空格。
样例输入
2
4
3 4 2 1
3
1 2 3
样例输出
3 1 2 4
3 2 1
代码如下:
- #include<iostream>
- #include<cstring>
- using namespace std;
- int main()
- {
- int t,n,a[10005];
- cin>>t;
- while(t--)
- {
- int min,max;
- cin>>n;
- for(int i=0;i<n;i++)
- {
- cin>>a[i];
- }
- min=max=a[0];
- for(int i=1;i<n;i++)
- {
- if(a[i]>max)
- {
- max=a[i];
- }
- if(a[i]<min)
- {
- min=a[i];
- }
- }
- for(int i=0;i<n;i++)
- {
- if(i)
- {
- if(a[i]==min) cout<<" "<<max;
- else if(a[i]==max) cout<<" "<<min;
- else cout<<" "<<a[i];
- }
- else
- {
- if(a[i]==min) cout<<max;
- else if(a[i]==max) cout<<min;
- else cout<<a[i];
- }
- }
- cout<<endl;
- }
- return 0;