HDUOJ 2016数据的交换输出
Problem 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
这道题思路也没有什么难度,我主要出错的地方和钱一道题一样,没有注意到最后面多打一个空格,oj里对格式的要求很严格,做题时应该注意。
Submit
#include<stdio.h>
int main() {
int n,a[110], min,s,t;
while (~scanf("%d", &n)&&n) {
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
min = a[0];
s = 0;
for (int j = 1; j < n; j++) {
if (min > a[j]) {
min = a[j];
s = j;
}
}
t = a[0];
a[0] = a[s];
a[s] = t;
for (int k = 0; k < n; k++) {
if (k == 0) {
printf("%d", a[k]);
}
else {
printf(" %d", a[k]);
}
}
printf("\n");
}
return 0;
}