数据交换输出
数据N个 最小的数和第一个数交换位置
看了参考答案有点心得:就是巧妙利用一下条件表达式输出格式
#include <stdio.h>
int main(void)
{
int n,m,i,min;
int a[100];
while(scanf("%d",&n))
{
scanf("%d",&min);
for(i = 1;i < n;i++)
{
scanf("%d",&a[i]);
if(a[i] < min)
{
m = min;
min = a[i];
a[i] = m;
}
}
a[0] = min;
for(i =0;i < n;i++)
printf("%d ",a[i]);
printf("
");
}
return 0;
}
参考答案
#include <cstdio>
#include <algorithm>
using namespace std;
int main(void)
{
int i, n;
int f[100], m;
while (scanf("%d", &n), n)
{
m = 0;
for (i = 0 ; i < n ; i++)
{
scanf("%d", f + i);
if (f[i] < f[m]) m = i;
}
swap(f[m], f[0]);
for (i = 0 ; i < n ; i++)
printf("%d%c", f[i], (i < n - 1 ? ' ' : '
'));
}
return 0;
}