​上一期《高射炮打蚊子丨用Visual Studio 2017写最初级的C语言程序》中,我们用Visual Studio “全宇宙最强IDE”这门大炮,打了“C语言写Hello World!”这只小蚊子,那今天我们继续,来看看经典的“冒泡排序”算法,在VS 2017环境下用C语言实现的全过程~!

题目:

用起泡法对n个数从小到大排序,n不大于100。

思路分析:

“起泡法”即我们经常听到的“冒泡排序”,其基本思路是:将相邻的两个数比较,将小的调到前头,如下图所示:

若有6个数。第一次将8和9对调,第二次将第2和第3个数(9和5)对调……如此进行5次,得到8-5-4-2-0-9的顺序,可以看到:最大的数字9已“沉底”,成为最下面一个数,而小的数“上升”。最小的数0已向上“浮起”一个位置。经第一趟(共5次比较和交换)后,已得到最大的数。然后进行第二趟比较,对余下的前面5个数按上法进行比较,如下图,经过4次比较于交换,得到次大的数8。

如此进行下去,可以推知,对6个数要比较5趟,才能对 6个数按大小顺序排列。在第一趟中要进行两个数之间的比较,共5次,在第二趟中比较4次……第5趟比较1次。如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。

考察知识点:

一维数组、循环控制

代码实现:

根据思路分析,我们开始设计程序,基本上要分为以下几个片段

1、定义变量

  需要比较的数字数量n;比较次数m;计数i,j;存储需要比较数字的一维数组a[100]

2、记录需要比较的数字

  首先询问需要比较多少个数字,然后设计一个循环控制,循环n次,依次记录这些数字

3、进行比较

  设计一个循环控制,进行n-1趟比较,每趟比较中仍然是一个循环控制,依次比较相邻两个数大小,并替换,存储到数组中

4、输出

  设计一个循环控制,依次输出数组中完成排序的数字

#include<stdio.h>
void main()
{int n,m,i, j,a[100],t;printf("How many numbers you need to sort?(1-100)\n");       //输入需要比较多少个数字scanf("%d", &n);for (i = 0; i < n; i++)      //输入第n个数字
    {printf("Please input the No.%d number, then press Enter: ", i+1);   scanf("%d", &a[i]);}m = n - 1;printf("\n");for (j=0;j<m;j++)                //进行n-1次循环,实现n-1趟比较for(i=0;i<m-j;i++)           //每一趟比较重进行n-1-j次比较if (a[i] > a[i + 1])     //相邻两个数比较
            {t = a[i];a[i] = a[i + 1];a[i + 1] = t;}printf("The sorted numbers are:\n");for (i = 0; i < n; i++)printf("%d ", a[i]);printf("\n");
}

在Visual Studio 2017里创建新的项目和文件,参考上一期高射炮打蚊子丨用Visual Studio 2017写最初级的C语言程序,输入代码,截图如下:

Ctrl+F7编译,Ctrl+F5运行

OK,以上内容操作,我们就完成了一次冒泡排序程序的编写,大家都学会了么?

转载于:https://www.cnblogs.com/shawnxie/p/7923602.html

高射炮打蚊子丨在VS 2017里用C语言写经典的冒泡排序相关推荐

  1. 高射炮打蚊子,杀鸡用绝世好剑:在SAP Kyma上运行UI5应用

    国人在表述"大材小用"这个场景时,总喜欢用一些实物来类比,比如:高射炮打蚊子. 英国QF 3.7英寸(94mm)高射炮,战斗全重超过9.3吨,全长近5米,最大射程约18公里,最大射 ...

  2. 年终盘点丨细数2017云栖社区20大热点话题(附100+话题清单)

    2017,你在聚能聊里分享了多少内容?贡献了多少话题?又收获了多少呢?社区聚能聊不仅可以请教技术难题,探讨热点话题,也可以八卦日常生活,分享码农们的点点滴滴. 程序员的世界不止是眼前的代码,一样有诗和 ...

  3. 北京中考计算机,规则丨2018考生:2017北京中考统招计算机录取规则

    中考 /计算机 /统招 原标题:规则丨2018考生:2017北京中考统招计算机录取规则 2018年北京中考志愿填报时间为7月7日-11日,很多家长和考生可能对于中考到底是怎么录取的还存在疑问,北京中考 ...

  4. [译文]过犹不及,别再在编程中高射炮打蚊子

    原文链接:Anyway,stop recommending bazookas to kill flies in programming. 众成翻译地址:过犹不及,别再在编程中高射炮打蚊子 译者注:翻译 ...

  5. 2017c语言考核册答案,2017年最新C语言考题带答案

    2017年最新C语言考题带答案 A.3839 B.3938 C.380039 D.390038 (42)有以下程序 #include main() { int a,b,c=246; a=c/100%9 ...

  6. 新思路等级考二级c语言题答案,2017计算机二级C语言考试强化习题及答案

    2017计算机二级C语言考试强化习题及答案 平时的练习对我们的考试来说十分重要,练习做得多了自然熟能生巧.下面是百分网小编为大家收集整理的2017计算机二级C语言考试强化习题及答案,希望对大家学习有所 ...

  7. 2017c语言预测,2017计算机二级C语言上机最终预测题

    2017计算机二级C语言上机最终预测题 2017年上半年计算机二级考试即将到来,为了帮助大家备考,百分网小编整理了计算机二级C语言上机最终预测题,希望帮助大家顺利通过计算机二级考试. 填空题 请补充f ...

  8. Gestalt - 在浏览器里用 python/ruby 写客户端脚本

    Gestalt 是 Mix Online Lab 创造出来的一个框架,利用它我们可以在浏览器里用 python/ruby 写脚本来操纵 DHTML 的各种对象,其作用就跟 javascript 类似. ...

  9. [react] 为什么标签里的for要写成htmlFor呢?

    [react] 为什么标签里的for要写成htmlFor呢? 为了区别和html自身标签中属性 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目录 ...

  10. 2017安徽二级c语言,2017计算机二级C语言测试题及答案

    2017计算机二级C语言测试题及答案 此题 首先为整型变量赋初值x1=1,x2=2 表达式1为i=1,表达式2(循环条件)为i<=N即i<=4,表达式3为i++ 循环变量初值i为1,循环条 ...

最新文章

  1. 解决pycharm输入法不跟随的方法
  2. Hystrix 熔断器01—— 概述 || Hystrix 重要概念
  3. 数据结构 思维导图【绪论、线性表、栈、队列和数组、树与二叉树、图、查找、排序】
  4. MySQL【案例讲解】分组查询
  5. 1月11日学习内容整理:请求库selenium之选择器,等待元素被加载
  6. Redis4.0 Cluster — Centos7
  7. python代码加密 混淆_Python程序的混淆和加密
  8. React学习初探(环境搭建)
  9. 关于DHCP超级域与中继代理的疑问
  10. 单片机电子时钟设计(期末课程设计)
  11. 如何将CAD转换成黑白的PDF文档?
  12. listmanager htdocs
  13. MATLIB从excel表中读取数据并画出函数图像
  14. linux at任务不运行,linux中at的使用-计划任务
  15. 12.2总结(纵使结局不如意,放弃实属下下签。)
  16. PC比电脑好玩的秘密是什么?答案就是因为有这些神奇的网站!
  17. 期刊、会议水平查询网站 声纳图像处理可以投稿的期刊和会议记录
  18. java 随机发牌_java实现扑克牌发牌器
  19. PAP与CHAP认证
  20. element的el-table列标题添加自定义图标

热门文章

  1. Contrastive Multiview Coding
  2. 腾讯TEG一面(电话面试)
  3. 2022程序员必备网站
  4. 智能手机业务的最新发展趋势
  5. C++综合练习——身份证
  6. 配置flashgot+axel
  7. java 专业英语单词_java_专业英语单词_力荐
  8. 云技术会颠覆IT平台吗?
  9. 软件测试工程师必备技能(初中高)
  10. 数人云|听说大神都在用这25种软件部署工具,你用过几种?