原题:http://acm.hdu.edu.cn/showproblem.php?pid=2016
思路:
读入数据,线性遍历一遍找出最小值,交换输出即可。
为了使代码清晰,写了一个空函数。
源代码:
#include <iostream> #include <climits> using namespace std; int a[101]={}; int n=0; string s={}; void fill() { for (int i=0;i<=100;i++) a[i]=0; } void find() { int min=INT_MAX; int tmp=0; int t; for (int i=1;i<=n;i++) if (a[i]<min) { tmp=i; min=a[i]; } t=a[1]; a[1]=min; a[tmp]=t; } int main() { fill(); cin>>n; while (n!=0) { for (int i=1;i<=n;i++) cin>>a[i]; find(); for (int i=1;i<n;i++) cout<<a[i]<<" "; cout<<a[n]<<endl; cin>>n; fill(); } }