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]<<" ";
}