nyoj 243-交换输出 (swap)

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("\n");
34     }
35 }

猜你喜欢

转载自www.cnblogs.com/GetcharZp/p/9334469.html