hdu 2016 数据的交换输出 解题报告

链接:http://acm.hdu.edu.cn/showproblem.php?pid=2016

输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。
 
Input
输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。
 
Output
对于每组输入数据,输出交换后的数列,每组输出占一行。
 

Sample Input
4 2 1 3 4 5 5 4 3 2 1 0
Sample Output
1 2 3 4 1 4 3 2 5
思路:标记最小值,然后交换

1 /********* hdu 2016 ************/
2 /********* 琴心&剑胆 ************/
3 /********* 2011/5/9 ************/
4 #include<stdio.h>
5 #include<string.h>
6  int main(){
7 int T,a[105];
8 while( scanf( "%d",&T )!=EOF ,T){
9 int bi=0,min=32767;
10 for( int i=0;i<T;++i ) {
11 scanf( "%d",&a[i] );
12 if( min>a[i] ){
13 min=a[i];
14 bi=i;
15 }
16 }
17 if( bi ){
18 int t=a[0];
19 a[0]=min;
20 a[bi]=t;
21 }
22 for( int i=0;i<T;++i ){
23 printf(i==T-1?"%d":"%d ",a[i]);
24 }
25 puts("");
26 }
27 }

原文地址:https://www.cnblogs.com/jian1573/p/2041470.html