HDU2016 数据的交换输出【入门】
2016-06-28 07:53
302 查看
数据的交换输出
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 118484 Accepted Submission(s): 44001
[align=left]Problem Description[/align]
输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。
[align=left]Input[/align]
输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。
[align=left]Output[/align]
对于每组输入数据,输出交换后的数列,每组输出占一行。
[align=left]Sample Input[/align]
4 2 1 3 4
5 5 4 3 2 1
0
[align=left]Sample Output[/align]
1 2 3 4
1 4 3 2 5
[align=left]Author[/align]
lcy
[align=left]Source[/align]
C语言程序设计练习(三)
问题链接:HDU2016 数据的交换输出。
问题简述:(略)
问题分析:
这个问题需要使用数组。程序的处理过程是套路,从数组中找出最小元素,得到最小元素的下标。然后数组中的最小元素与第1个元素进行交换。
程序说明:
程序中清晰地给出了处理过程的逻辑。
AC的C语言程序如下:
/* HDU2016 数据的交换输出 */ #include <stdio.h> int main(void) { int n, val[100+1], mini, i; while(scanf("%d", &n) != EOF) { // 结束判断 if(n==0) break; // 读入n个数据 for(i=0; i<n; i++) scanf("%d", &val[i]); // 找出最小元素(下标) mini = 0; for(i=1; i<n; i++) if(val[i] < val[mini]) mini = i; // 交换:第1个元素与最小元素交换 int temp = val[mini]; val[mini] = val[0]; val[0] = temp; // 输出结果 for(i=0; i<n; i++) { if(i != 0) printf(" "); printf("%d", val[i]); } printf("\n"); } return 0; }
相关文章推荐
- poj2891(中国剩余定理模版::不要求模数互质)
- activeMQ消息中文乱码解决
- 获取APK签名sha1值
- BZOJ3144 切糕
- Java基础学习(五)—Collection
- 1012. The Best Rank (25)
- 矢量字体字形分布图
- [拆边费用流] BZOJ 1449 [JSOI2009]球队收益
- .NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布
- 1016
- 【SpringMVC学习11】SpringMVC中的拦截器
- [暴搜剪枝] BZOJ 3733 [Pa2013]Iloczyn
- C# 怎样将DateTime类型进行日期的加减
- .NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布
- vuejs件同一个挂载点上切换组
- TP框架之多文件上传
- 【WWDC2016 Session】iOS 10 推送Notification新特性
- Linux下PHP连接MS SQLServer的办法
- Java基础学习(四)—面向对象(下)
- 解决首次启动程序白屏时间过长的问题