数据的交换输出

来源:百度知道 编辑:UC知道 时间:2024/05/19 10:51:31
Description

输入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

49343 zxl0714 1360 Accepted 40K 15MS G++ 0.43K 2007-04-14 20:39:56

#include <stdio.h>

int main( )
{
int n, a[ 100 ], minn, i, tmp;
while ( scanf("%d", &n) != EOF && n )
{
minn = 0;
for ( i = 0; i < n; i++ )
{
scanf("%d", &a[ i ]);
if ( a[ minn ] > a[ i ] ) minn = i;
}
tmp = a[ minn ]; a[ minn ] = a[ 0 ]; a[ 0 ] = tmp;
printf("%d", a[ 0 ]);
for ( i = 1; i < n; i++ )
printf(" %d", a[ i ]);
printf("\n");
}
return 0;
}