题目描述
输入n个数,要求找出n个数的最小值,并将最小的数与第一个数交换后,再输出。
如果最小值不止一个,那么让第一个最小值和第一个数交换
输入格式
第一行:n n<=100
第二行:n个由空格隔开的整数。
输出格式
n个由空格隔开的整数,其中最小的数和第一个完成交换。
样例
input
5
2 3 6 1 3
output
1 3 6 2 3
代码
#include<bits/stdc++.h>
using namespace std;
int n,a[11000],i,mi=INT_MAX,k;//a为输入数组,mi为最小值,k为最小值下标。
int main(){
cin>>n;//输入
for(i=1;i<=n;i++){
cin>>a[i];//输入a数组
if(mi>a[i]){//找出最小值
mi=a[i];
k=i;
}
}
for(i=1;i<=n;i++)swap(a[k],a[1]);//第一个数与最小值交换
for(i=1;i<=n;i++)cout<<a[i]<<" ";//输出
return 0;
}