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 数据的交换输出入门的主要内容,如果未能解决你的问题,请参考以下文章