1132: 【入门】最小数
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:38
解决:24
题目描述
输入n个整数的数列,请找出数列中最小数所在的位置(若有多个最小数,则选最左边的那个最小数),把它与数列的第一个数对调,其他数的位置不动,输出此数列。
输入
数组数的个数n (N<=200) 一行n个数,用空格分开(都<=32767)
输出
第一行:最小数所在的位置(只需要输出最左边的一个的位置) 第二行:交换后的数组(一个空格隔开)
样例输入 复制
3
2 6 1
样例输出 复制
3
1 6 2
提示
n=int(input())
ls=list(map(int,input().split()))
m=min(ls)
i=ls.index(m)
ls[i],ls[0]=ls[0],ls[i]
print(i+1)
print(' '.join(map(str,ls)))
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[210],n,s=0,m=INT_MAX,x,i;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
if(a[i]<m)
m=a[i];
}
for(i=0;i<n;i++){
if(m==a[i]){
cout<<i+1<<endl;
break;
}
}
x=a[0];
a[0]=a[i];
a[i]=x;
for(i=0;i<n;i++)
cout<<a[i]<<" ";
}