2016

数据交换输出

数据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;
}

  

========================if i have some wrong, please give me a message, thx.========================
原文地址:https://www.cnblogs.com/ailx10/p/5331968.html