243-交换输出
内存限制:64MB
时间限制:3000ms
特判: No
通过数:16
提交数:39
难度:1
题目描述:
输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。(如果这个第一个数就是最小的数,则保持原样输出,如果最小的数有相同的按照前面的交换)
输入描述:
输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。
输出描述:
对于每组输入数据,输出交换后的数列,每组输出占一行。
样例输入:
4 2 1 3 4 5 5 4 3 2 1 0
样例输出:
1 2 3 4 1 4 3 2 5
C/C++ AC:
1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <cstdio> 5 #include <cmath> 6 #include <stack> 7 #include <set> 8 #include <map> 9 #include <queue> 10 #include <climits> 11 #define PI 3.1415926 12 13 using namespace std; 14 int n, A[110]; 15 16 int main() 17 { 18 while (scanf("%d", &n), n != 0) 19 { 20 int temp = INT_MAX, location=0; 21 for (int i = 0; i < n; ++ i) 22 { 23 scanf("%d", &A[i]); 24 if (A[i] < temp) 25 { 26 temp = A[i]; 27 location = i; 28 } 29 } 30 swap(A[0], A[location]); 31 for (int i = 0; i < n; ++ i) 32 printf("%d ", A[i]); 33 printf(" "); 34 } 35 }