HDU2016 数据的交换输出入门

Posted 海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU2016 数据的交换输出入门相关的知识,希望对你有一定的参考价值。

数据的交换输出
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 193818 Accepted Submission(s): 71386

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

Author
lcy

Source
C语言程序设计练习(三)

问题链接HDU2016 数据的交换输出
问题简述:(略)
问题分析
  按Markdown格式重写了题解,旧版题解参见参考链接。
  先读入数据放入数组中,在数组中找出最小元素的下标,然后数组中的最小元素与第1个元素进行交换,最后输出结果。处理过程基本上都是套路,需要掌握。
程序说明:(略)
参考链接HDU2016 数据的交换输出【入门】
题记:套路需要熟练掌握。

AC的C语言程序如下:

/* HDU2016 数据的交换输出 */

#include <stdio.h>

#define N 100
int a[N];

int main(void)
{
    int n, mini, i;

    while(scanf("%d", &n) != EOF && n) {
        /* 读入n个数据 */
        for (i = 0; i < n; i++)
            scanf("%d", &a[i]);

        /* 找出最小元素(下标) */
        mini = 0;
        for (i = 1; i < n; i++)
            if (a[i] < a[mini]) mini = i;

        /* 交换:第1个元素与最小元素交换 */
        int temp = a[mini];
        a[mini] = a[0];
        a[0] = temp;

        /* 输出结果 */
        for (i = 0; i < n; i++) {
            if (i != 0) printf(" ");
            printf("%d", a[i]);
        }
        printf("\\n");
    }

    return 0;
}

以上是关于HDU2016 数据的交换输出入门的主要内容,如果未能解决你的问题,请参考以下文章

HDU2016 数据的交换输出

hdu 2016 数据的交换输出

hdu 2016 数据的交换输出

PAT 2016 数据的交换输出

HDU2019 数列有序!

假期编程