-
题目描述:
-
输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。
-
输入:
-
测试数据有多组,输入n(1<=n<=20),接着输入n个数。
-
输出:
-
对于每组输入,输出交换后的结果。
-
样例输入:
-
2 1 3
-
样例输出:
-
3 1
-
答疑:
解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7777-1-1.html
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=25;
int a[maxn];
int main(){
int n;
while(scanf("%d",&n)==1){
for(int i=0;i<n;i++) scanf("%d",&a[i]);
int maxa,mina,k1=0,k2=0;
maxa=mina=a[0];
for(int i=1;i<n;i++){
if(a[i]>maxa){maxa=a[i];k1=i;}
if(a[i]<mina){mina=a[i];k2=i;}
}
swap(a[k1],a[k2]);
for(int i=0;i<n;i++){
printf("%d",a[i]);
if(i<n-1) printf(" ");
else printf("\n");
}
}
return 0;
}