生活中c语言排序案例,C语言之数字排序-基于冒泡排序法的一些案例(对未知数量的数字进行排序)...

C语言之数字排序

在学习C语言的时候遇到了几个比较基础的排序问题,又结合了之前的处理方法。觉得在这个需要再系统地进行复习一下。

当我们在初学C语言的时候,我们都会结合三个数字的排序来理解计算机处理问题的方式:

计算机不会像人一样直观地去判断三个数的大小,在计算机对数字比较的时候,需要对数字进行两两比较,之后才能得出一串数字的大小。

比如在对a,b,c三个数字进行比较的时候,就要分别进行两两之间的比较:

【案例一】

题目描述

本题要求将输入的任意3个整数从小到大输出。

输入

输入在一行中给出3个整数,其间以空格分隔。

输出

在一行中将3个整数从小到大输出,其间以“ ”隔开。

样例输入

4 2 8

样例输出

2 4 8

代码

#includeint main()

{

int a,b,c;

scanf("%d %d %d",&a,&b,&c);

if(a

这么一段复杂、臃肿的代码,仅仅实现了三个数字之间的比较。这算得上是一种简单粗暴的方法。虽然显得很笨重,但是却很容易让人理解,并很容易将代码实现。

但是,这样的处理方式仅仅局限于对三个数字的比较,如果再多出几位,这种方法将变得很不现实。

所以,我们需要一种更加简捷的方式去处理这个问题。

观察上述的代码,我们发现,每一次大的if语句中我们都先确定了最大的那个数,然后再进行后两位数的比较。那么,我们能不能使用一种方法,每一次将数字串的最大的一个数字选出来,放在第一位,然后不再处理这个数字,再将以后的数字进行选择,每次将最大的数字放在第一位。于是便解决了多个数字的排序问题,这个方法就叫做 冒泡排序法。

【案例二】

题目描述

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个随机整数,对于其中重复的数字,只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

输入

数据有多组,对于每组数据:

输入有2行,第1行为1个正整数N,表示所生成的随机数的个数。

第2行有N个用空格隔开的正整数,为所产生的随机数。

[数据范围]

0输出

对于每组数据:

输出有2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数,末尾有一个空格。

样例输入

10

20 40 32 67 40 20 89 300 400 15

样例输出

8

15 20 32 40 67 89 300 400

代码

#includeint main()

{

int n,i,j,t;

scanf("%d",&n);

int a[n],b[n];

for(i=0;i

【案例三】

在这个案例中,本来是在输入的第一行给出相应数字的数量,但是我认为应该有一种简单的方法去实现对未知数量的数字进行排序,于是从网上找到了这个函数进行操作,效果可见一斑。

题目描述

本题要求将给定的n个整数从大到小排序后输出。

输入

输入第一行给出给出n个整数,其间以回车之外的任意符号分隔。

输出

在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。

样例输入

5 1 7 6

样例输出

7 6 5 1

代码

#include#includeint main()

{

int t,j,i=0,n=0,a[1000],b[1000];

char c;

while((c=getchar())!='\n')

{

if(isdigit(c))

{

ungetc(c,stdin);

scanf("%d",&a[n++]);

}

}

for(i=0;i

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

疑问集锦

1.怎样动态的配置程序中的数据库连接参数,已达到系统的打包后的可安装性? 2.Form的数量会不会影响程序的大小? 3.怎样给程序瘦身,以提高程序的效率? 4.怎样在没有安装独立数据库的机器中运行有数据库文件的软件呢&…

LeetCode 1151. 最少交换次数来组合所有的 1(滑动窗口)

文章目录1. 题目2. 解题1. 题目 给出一个二进制数组 data,你需要通过交换位置,将数组中 任何位置 上的 1 组合到一起,并返回所有可能中所需 最少的交换次数。 示例 1: 输入:[1,0,1,0,1] 输出:1 解释&#…

android闹钟测试工具,android开发:AlarmManager闹钟管理器的实例

1、AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,在特定的时刻为我们广播一个指定的PendingIntent。通俗点,就是设置一个时间,在指定的时间里,Alarm会帮我们执…

discuz程序的阅读(1)

今天开始阅读discuz2.5的源码,这是发现的一些收获,记录一下。有兴趣的同学可以去试试 CREATE TABLE pre_forum_post ( pid int(10) unsigned NOT NULL COMMENT 帖子id, fid mediumint(8) unsigned NOT NULL default 0 COMMENT 论坛id, tid mediumint(8) …

LeetCode 742. 二叉树最近的叶节点(建立父节点信息+BFS)

文章目录1. 题目2. 解题1. 题目 给定一个 每个结点的值互不相同 的二叉树,和一个目标值 k,找出树中与目标值 k 最近的叶结点。 这里,与叶结点 最近 表示在二叉树中到达该叶节点需要行进的边数与到达其它叶结点相比最少。 而且,当…

SharePoint 大局观(4)——从开发人员角度

内容摘要 SharePoint是微软提供的一个企业级别的协作平台,目前最新的版本是2010,它的功能相当多,而且也相当灵活。为了帮助大家更好地,从相对较高的层面了解SharePoint 2010的体系结构,我这里分七讲来分别介绍。 本节讲…

LeetCode 490. 迷宫(BFS/DFS)

文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 由空地和墙组成的迷宫中有一个球。 球可以向上下左右四个方向滚动,但在遇到墙壁前不会停止滚动。 当球停下时,可以选择下一个方向。 给定球的起始位置,目的地和迷宫,判断球能否在目…

android studio moudel,Android Studio 添加其他目录下的module

Android Studio 添加其他目录下的moduleadmin • 2020 年 11 月 07 日[title]需要操作的原因[/title]在我们写程序的时候,经常会因为重复性的代码而耽误工夫,所以会编写一些常用的工具类和模块进行调用。在网上搜索到的都是同一个工程下如何配置模块&…

Photoshop Blendmodi in GLSL

转载自:http://renderingpipeline.com/2012/06/photoshop-blendmodi-glsl/ I once wrote a texturing tool in which you could paint on a 3D model on multiple layers. These layers were composing the final texture just as you know it from photoshop, comp…

LeetCode 505. 迷宫 II(BFS / Dijkstra 最短路径)

文章目录1. 题目2. 解题2.1 BFS2.2 Dijkstra 最短路径1. 题目 由空地和墙组成的迷宫中有一个球。 球可以向上下左右四个方向滚动,但在遇到墙壁前不会停止滚动。 当球停下时,可以选择下一个方向。 给定球的起始位置,目的地和迷宫&#xff0c…

数据冗余的理解和相关概念

2012年6月22日有同学去完爱森哲面试回来说,有一问题是问如何消除数据冗余的,我一时也忘了数据冗余的相关概念,于是再复习了一遍: 数据冗余 关系数据库的数据冗余形成的原因:表的重复、属性的重复、元组的重复、属性值的…

红米note3android版本,小米-红米note3-LOS-安卓9.0.0-稳定版Stable3.0-来去电归属-农历等-本地化增强适配...

制作者:MOS-Developer基于版本:LineageOS Android最新安卓9.0.0代码适合机型:小米红米note3高配/标配/低配/kenzo注意事项:为了能一直更新和维护,不付费不收费,请把预装的4个软件使用3-5天后再卸载&#xf…

LeetCode 305. 岛屿数量 II(并查集)

文章目录1. 题目2. 解题2.1 超时解2.1 改进计算方法1. 题目 假设你设计一个游戏,用一个 m 行 n 列的 2D 网格来存储你的游戏地图。 起始的时候,每个格子的地形都被默认标记为「水」。 我们可以通过使用 addLand 进行操作,将位置 (row, col)…

cygwin下的gcc-4.7.1编译心得

步骤: 1、先编译gmp mpfr mpc这几个库,注意configure时--prefix/usr/local/ 2、中间碰到过can not compute suffix的错误,在命令 export LD_LIBRARY_PATH/usr/local/:${LD_LIBRARY_PATH} export LD_RUN_PATH/usr/local/:${LD_RUN_PATH} 也不行…

鸿蒙系统怎么换windows,求助~鸿蒙系统windows环境搭建(hpm-cli安装失败)!

系统win10,执行命令“npm install -g ohos/hpm-cli”,报错如下:npm ERR! code EEXISTnpm ERR! path C:\Users\jay\AppData\Roaming\npm\node_modules\ohos\hpm-cli\bin\hpmnpm ERR! dest C:\Users\jay\AppData\Roaming\npm\hpmnpm ERR! EEXIS…

LeetCode 265. 粉刷房子 II(DP)

文章目录1. 题目2. 解题1. 题目 假如有一排房子,共 n 个,每个房子可以被粉刷成 k 种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成…

string::size_type

重读c primier, 从这个文章开始做个记录,方便以后自己查阅。 1、string::size_type,string的size()方法返回的类型,可以保证string的任意长度。作为配套类型使得string类型的操作与机器无关。 2、操作时需加上作用于操作符&#x…

鸿蒙系统笔记本价格,鸿蒙系统手机华为P50将明年3月发售,华为P40价格骤降至冰点...

原标题:鸿蒙系统手机华为P50将明年3月发售,华为P40价格骤降至冰点鸿蒙系统手机华为P50将明年3月发售,华为P40价格骤降至冰点!每一代P系列产品都基于华为研发和业界合作伙伴的最前沿的能力,实现全新的突破,明…

LeetCode 272. 最接近的二叉搜索树值 II(栈+优先队列)

文章目录1. 题目2. 解题1. 题目 给定一个不为空的二叉搜索树和一个目标值 target,请在该二叉搜索树中找到最接近目标值 target 的 k 个值。 注意: 给定的目标值 target 是一个浮点数 你可以默认 k 值永远是有效的,即 k ≤ 总结点数 题目保证…

android p dp5,谷歌释出Android P第5个开发者预览版更新!

原标题:谷歌释出Android P第5个开发者预览版更新!【PConline资讯】今天凌晨,谷歌正式推出了AndroidP的第五个开发者预览版(DP5),这标志着AndroidP终于准备好在2018年第三季度来面对广大的Android用户了。具体来说,按照…