版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41648259/article/details/88069301
题目描述
输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。
输入描述:
测试数据有多组,输入n(1<=n<=20),接着输入n个数。
输出描述:
对于每组输入,输出交换后的结果。
示例1
输入
2 1 3
输出
3 1
#include<iostream>
using namespace std;
int buf[20]={0};
int main(){
int n;
while(cin>>n){
for(int i=0;i<n;i++){
cin>>buf[i];
}
int max,min,pos1=0,pos2=0,k;
max=buf[0];
min=buf[0];
for(k=1;k<n;k++){
if(buf[k]>max){//寻找最大值位置
max=buf[k];
pos1=k;
}
if(buf[k]<min){//寻找最小位置
min=buf[k];
pos2=k;
}
}
int tmp=buf[pos2];
buf[pos2]=buf[pos1];
buf[pos1]=tmp;
for(k=0;k<n;k++) cout<<buf[k]<<" ";
}
return 0;
}