原题: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(); } }
这篇博客介绍了SCUT(华南理工大学)20170913训练赛中的一道题目G。博主提供了原题链接,并分享了解决问题的思路:通过读入数据,进行线性遍历找到最小值,然后输出交换后的结果。为了代码可读性,博主特意编写了一个空函数辅助理解。

被折叠的 条评论
为什么被折叠?



