HDU1106 排序
来源:互联网 发布:男装批发软件 编辑:程序博客网 时间:2024/05/22 08:08
问题链接:HDU1106 排序。
问题简述:参见上述链接。
问题分析:这个程序的逻辑并不十分复杂,主要是字符串处理和数字字符串转整数的问题。
程序说明:转换后的整数需要排序,但这不是重点。排序使用库函数qsort()来实现。
因为5被看作空格,需要注意的点有:
1.开始的若干个5需要跳过去;
2.最后的若干个5需要跳过去;
3.字符串全部是5的时候,需要正确处理(俺就吃亏在这里,开始一直没有AC);
4.中间的若干个5需要正确跳过去。
程序中使用了标志flag5,来处理若干个5。
数字串转整数的逻辑与atoi相同。
本程序的优点在于逻辑清晰简洁。
参见:HDU1106 排序(解法二)。该程序更加简洁一些。
AC的C语言程序如下:
/* HDU1106 排序 */#include <stdio.h>#include <stdlib.h>int cmp(const void *a,const void *b){ return *(int*)a - *(int*)b;}int main(void){ char figure; int val=0, values[2000], count, flag5=1, i; while(scanf("%c", &figure)!=EOF) { if(figure == '\n') { if(flag5 == 0) values[count++] = val; if(count > 0) { qsort(values, count, sizeof(values[0]), cmp); for(i=0; i<count-1; i++) printf("%d ", values[i]); printf("%d\n", values[count-1]); } val = 0; count = 0; flag5 = 1; } else if(figure == '5') { if(flag5 == 0) values[count++] = val; val = 0; flag5 = 1; } else { val = val * 10 + figure - '0'; flag5 = 0; } } return 0;}
1 0
- HDU1106:排序
- hdu1106 排序
- hdu1106( 排序)
- HDU1106--排序
- hdu1106排序
- hdu1106排序
- hdu1106排序
- hdu1106-排序
- HDU1106 排序
- hdu1106排序
- HDU1106 排序
- HDU1106 排序
- HDU1106排序
- HDU1106 排序
- HDU1106-排序
- HDU1106 排序
- HDU1106 排序
- Hdu1106排序
- 面向项目(六)—— 错误(异常)信息的书写
- Courses(二分图水题)
- 网络HTTP、TCP、UDP、Socket 知识总结
- 《关于SDL中的色彩键控》
- poj2553——The Bottom of a Graph(强连通分量)
- HDU1106 排序
- 《java入门第一季》之面向对象(包概述)
- 并查集初学(1)
- 那一年, 我第一次听说华为
- java后台数据库同步使用map进行缓存
- android中bitmap用法示例
- Git使用后的一些思考
- VB 控制台输出"HelloWorld!"
- c++实验5-数组分离