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

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

  1. 讨论生活中什么样东西可以何种变量描述找出生活中顺序执行事情用c语言,《C语言程序设计》实验指导书...

    <C语言程序设计>实验指导书 (25页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 <C语言程序设计>实验指导书实 ...

  2. android 价格排序筛选页面,Android应用开发之基于Popupwindow实现的筛选房源信息等相关的可自由排序控件...

    本文将带你了解Android应用开发Android开发基于Popupwindow实现的筛选房源信息等相关的可自由排序控件,希望本文对大家学Android有所帮助. 功能 区分 支持区域二级选择     ...

  3. c语言编程培训ppt,C语言入门经典-C语言编程.ppt

    <C语言入门经典-C语言编程.ppt>由会员分享,可在线阅读,更多相关<C语言入门经典-C语言编程.ppt(27页珍藏版)>请在人人文库网上搜索. 1.第01章 C语言编程,C ...

  4. c语言入门经典doc,C语言入门经典C语言编程.ppt

    C语言入门经典C语言编程.ppt 第01章 C语言编程,C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序即一组指令,并让计算机依指令行事 ...

  5. 编程入门c语言ppt,C语言入门经典-C语言编程.ppt

    <C语言入门经典-C语言编程.ppt>由会员分享,可在线阅读,更多相关<C语言入门经典-C语言编程.ppt(27页珍藏版)>请在装配图网上搜索. 1.第01章 C语言编程,C语 ...

  6. 选择排序法和冒泡排序法

    选择排序法和冒泡排序法 1.选择排序法(以从小到大排序为例) 算法思想: A.在未排序序列中找到最小(大)元素,存放到排序序列的起始位置 B.从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序 ...

  7. 我在微软亚洲研究院生活中所接触的语言

    自上次<回首往事:十八年的语言分支>一文后,全民编程计划也算是正式启动开来,其实前几次的文章(详见底部的推荐文章)确实为我们分享出了很多的道理.从中我们看到了语言的"叛逆思想&q ...

  8. 人们常常喜欢用花来表达心中隐藏的语言,借此表达自己的某种感情与愿望。赏花要懂花语,花语是花卉文化的核心,在花卉交流中,涵义和情感表达甚于言语。而在日常生活中,浪漫的花语也起着不可忽视的调节气氛、表达隐

    人们常常喜欢用花来表达心中隐藏的语言,借此表达自己的某种感情与愿望.赏花要懂花语,花语是花卉文化的核心,在花卉交流中,涵义和情感表达甚于言语.而在日常生活中,浪漫的花语也起着不可忽视的调节气氛.表达隐 ...

  9. 《全民编程》我在微软生活中所接触的语言

    <回首往事:十八年的语言分支>一文后,全民编程计划也算是正式启动开来,其实前几次的文章(详见底部的推荐文章)确实为我们分享出了很多的道理.从中我们看到了语言的"叛逆思想" ...

最新文章

  1. linux中非法内存,Linux下数组非法访问导致内存破坏 —— 引发segmentation fault的原因...
  2. 阿里百川与极客邦科技达成战略合作 Weex宣布开源
  3. VTK:多数据点用法实战
  4. 05_通过sql操作表中的数据_插入修改删除查询
  5. Spring Security入门(3-4)Spring Security 异常处理、异常传递和异常获取
  6. java中Decimaformat_Java中 DecimalFormat 用法详解
  7. 用javascript完成pos机的输入输出
  8. 用JS实现一个随机点名系统(五)
  9. button点击事件不响应的解决方法(子视图大小超过父视图)
  10. netframework有什么用_为什么.NET Web 应用推荐使用 await、async异步编程?
  11. css中正确设置微软雅黑字体
  12. 打印机如何手动正反面Mac设置黑白打印
  13. python invalid syntax 冒号_SyntaxError: invalid syntax python【解决方法】 – IT热血青年
  14. 员工转正申请书_试用期员工转正申请书范文5篇
  15. 柯西过程(Cauchy process)
  16. C+++实现推箱子(附加回撤功能)
  17. 2022 - 软件构造复习
  18. 数学上的表示“任意”和“存在”的符号
  19. MongoDB的可视化工具Robo 3T安装
  20. word文件解除保护模式让其可编辑

热门文章

  1. python3进阶开发-第一个仿博客园的项目(1)
  2. 素数环 与 算法 全排列
  3. 三、Unity中的鼠标、键盘的获取
  4. css 相对定位与绝对定位
  5. jrtplib使用注意事项
  6. android数据存储_SharedPreferences的简单使用
  7. 分享几个有意思的视频
  8. Android studio JNI jni实例
  9. html两个div间有白线,html-在特定浏览器宽度下,白线出现在渐变填充div的末尾
  10. vslabel隐藏了怎么找_vscode菜单栏与工具栏隐藏之后怎么找回来