HDU 1106 (1.3.5) 排序 (C语言描述)
Problem Description
输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。
Input
输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。  
输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。
Output
对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。
程序中,使用库函数strtok()来切割字符串,并且以数字字符“5”作为分隔符,再使用库函数atoi()来实现数字字符串转整数,排序使用库函数qsort()来实现。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(const void *a, const void *b)
{
    return *(int*)a - *(int*)b;
}
int main(void)
{
	char ch[1001], point[] = "5";
    int values[1001], count, i;
	char *pt;
	while (gets(ch) != NULL)
	{
		count = 0;
		pt = strtok(ch, point);           /* 首次调用 */ 
		while (pt)                        /* 如果 pt 是 NULL, 则退出 */
		{
			values[count++] = atoi(pt);   /* 将 pt 代表的字符串转换为 long 类型的值,并赋给 values 数组 */
            pt = strtok(NULL, point);     /* 下一个记号 */
		}
		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]);
        }
    }   
	return 0;
} 												
											HDU 1106 (1.3.5) 排序 (C语言描述)的更多相关文章
- 用 C 语言描述几种排序算法
		
排序算法是最基本且重要的一类算法,本文基于 VS2017,使用 C 语言来实现一些基本的排序算法. 一.选择排序 选择排序,先找到数组中最小的元素,然后将这个元素与数组的第一个元素位置互换(如果第一个 ...
 - 选择排序_C语言_数组
		
选择排序_C语言_数组 #include <stdio.h> void select_sort(int *); int main(int argc, const char * argv[] ...
 - 《数据结构与算法分析:C语言描述》复习——第六章“排序”——冒泡排序
		
2014.06.17 01:04 简介: 冒泡排序是O(n^2)级别的交换排序算法,原理简单,属于必知必会的基础算法之一. 思路: 排序要进行N轮,每一轮从尾部逐个向前扫描,遇到逆序对就进行交换.确保 ...
 - 快色排序算法(C语言描述)
		
快速排序 算法思想 快速排序采用了一种分治策略,学术上称之为分治法(Divide-and-Conquer Method). 哨兵(如下算法中的key) 每趟排序将哨兵插入到数组的合适位置,使得哨兵左侧 ...
 - 题解报告:hdu 2647 Reward(拓扑排序)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647 Problem Description Dandelion's uncle is a boss ...
 - Jquery如何序列化form表单数据为JSON对象  C# ADO.NET中设置Like模糊查询的参数  从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值  jquery调用iframe里面的方法  Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件  设计模式之简单工厂模式(C#语言描述)
		
jquery提供的serialize方法能够实现. $("#searchForm").serialize();但是,观察输出的信息,发现serialize()方法做的是将表单中的数 ...
 - 《数据结构与算法分析:C语言描述》读书笔记
		
我们数据结构的课用了这本英文教材,作者是Mark Allen Weiss.总体来说比<算法导论>简单很多,但内容上交集非常大.其实是因为去掉了大多数证明和数学,对于没有耐心看符号和公式的人 ...
 - 数据结构与算法分析:C语言描述(原书第2版 简体中文版!!!) PDF+源代码+习题答案
		
转自:http://www.linuxidc.com/Linux/2014-04/99735.htm 数据结构与算法分析:C语言描述(原书第2版中文版!!!) PDF+源代码+习题答案 数据结构与算法 ...
 - C语言学习书籍推荐《数据结构与算法分析:C语言描述(原书第2版)》下载
		
维斯 (作者), 冯舜玺 (译者) <数据结构与算法分析:C语言描述(原书第2版)>内容简介:书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能.效率以及对运行 ...
 
随机推荐
- Tableau使用折线图和饼图的组合
			
一.订单日期拖拽至列-右键天(具体到年月日) 二.订单日期拖拽至筛选器-年月-随机选择一个月的数据 三.创建计算字段-LOD-销售额 {EXCLUDE[类别]:SUM([销售额])} 四.销售额和刚刚 ...
 - 如何实现 range 函数的参数?
			
关于 range 函数 Python内置的range函数可以接收三个参数: class range(stop): ... class range(start, stop[, step]): ... 标 ...
 - IDEA中安装SVN
			
下载svn和汉化安装包: (下面安装过程中,运行这两个安装包需要管理员权限:使用管理员权限运行cmd,在cmd中运行这两个安装包) 1.安装SVN 安装SVN时这里要选择[will be i ...
 - LuoguP7285 「EZEC-5」修改数组 题解
			
Content 有一个长度为 \(n\) 的 \(0/1\) 串,你可以修改当中的一些元素,求修改后最长的连续为 \(1\) 的子串长度减去修改次数的最大值. 数据范围:\(1\leqslant n\ ...
 - 金山云主机centos7.4根目录挂载文件书写错误无法进入系统解决办法
			
由于/etc/fstab写错,根目录无法挂载,开机提示如下 处理办法: 根据提示输入root密码: 执行mount -o remount,rw /重新挂载根目录. vim 修改挂载文件 reboot重 ...
 - 『学了就忘』Linux日志管理 — 90、Linux中日志介绍
			
目录 1.日志相关服务 2.系统中常见的日志文件 1.日志相关服务 在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.RedHat认为syslogd已经不能满足在工 ...
 - 面试官问我TCP三次握手和四次挥手,我真的是
			
候选者:面试官你好,请问面试可以开始了吗 面试官:嗯,开始吧 面试官:今天来聊聊TCP吧,TCP的各个状态还有印象吗? 候选者:还有些许印象的,要不我就来简单说下TCP的三次握手和四次挥手的流程吧 候 ...
 - SpringBoot简单整合分布式任务调度平台(XXL-JOB)
			
官方文档:https://www.xuxueli.com/xxl-job/#%E3%80%8A%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%BB%E5%8A%A1%E8%B0%8 ...
 - 使用JS对字符串进行MD5加密
			
md5.js /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorith ...
 - tomcat 增加内存
			
打开tomcat目录的bin/catalina.bat文件,在开头处,增加: SET CATALINA_OPTS= -Xms2048m -Xmx4096m -XX:MaxNewSize=512m -X ...