c语言实现三个数字排序,[编程入门]三个数字的排序 (C语言代码)

解题思路:先说一下思路,从逐个试的方法引出嵌套循环方法

注意事项:

参考代码:

/*冒泡法思路:依次用前一个与后一个比较,将大的后移*/

#include

int m   ()

{

int a,b,c,t;

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

if(a>b)

{

t=a;

a=b;

b=t;

}

if(b>c)

{

t=b;

b=c;

c=t;

}

if(a>b)

{

t=a;

a=b;

b=t;

}

printf("%d %d %d\n",a,b,c);

}

/*选择法思路:依次用前面的与后面的比较,将小的前移*/

#include

int m   ()

{

int a,b,c,t;

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

if(a>b)

{

t=a;

a=b;

b=t;

}

if(a>c)

{

t=a;

a=c;

c=t;

}

if(b>c)

{

t=b;

b=c;

c=t;

}

printf("%d %d %d\n",a,b,c);

}

/*冒泡法*/

#include

int m   ()

{

int a[3],i,j,t;

for(i=0;i<3;i++)

{

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

}

for(i=1;i<=2;i++)/*注意嵌套循环内的值,要减少运算量*/

{

for(j=0;j<3-i;j++)

{

if(a[j]>a[j+1])

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

}

for(i=0;i<3;i++)

{

printf("%d ",a[i]);

}

printf("\n");

return  ;

}

/*选择法*/

#include

int m   ()

{

int a[3],i,j,t;

for(i=0;i<3;i++)

{

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

}

for(i=0;i<2;i++)/*注意嵌套循环内的值,要减少运算量*/

{

for(j=i+1;j<3;j++)

{

if(a[i]>a[j])

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

}

for(i=0;i<3;i++)

{

printf("%d ",a[i]);

}

printf("\n");

return  ;

}

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
水仙花的vfp实现 时间:2009-05-08来源:编程入门网 作者:老马   本文作者“老马”为编程入门网VFP专栏作家,转载请保留这句话。   记得看过朋友的文章中有句话大致是这个意思:一个人编程的水平与实现同一目的所需的代码量成反比。其实这句话很有道理,如果用这个观点来评价我自己,我应该是一个苍老的菜鸟,我做出来的东西勉强可用,但代码在高手看来却是惨不忍睹。我所走过的轨迹与常人大概也有所不同:计算机专业科班的可能在毕业后从事coding多年之后,当感觉自己力不从心时转行做管理或教师;而我恰恰相反,外贸专业毕业后狂热地自学了一些东西,教了几年C语言、vb、vfp及asp等课程,几乎所有的业余时间都用到了接活来做上,这一点也差不多达到了狂热的程度。不过后来发现自己似乎是走进了死胡同:我试图走进VC的世界,可是被MFC、SDK这些东西折磨得痛苦之极;当我为自己开始能用asp做些东西而沾沾自喜的时候,一个强调代码与界面分离的asp.net一天比一天时髦起来,而它的身后是一个.NET家族。更新的技术何时出现?天知道,或许就在明天。我终于开始明白,我实际并不象身边的人说的那样聪明,我也只是一个平庸的人;我终于开始明白,如果在我所从事的这个没有任何保障的“挨踢”行业继续做下去,过几年我会成为40、50人员,那时恐怕连愿意为我交社保、医保的地方都找不到了。所以现在我进入了企业,不再是教师,因为这需要很大的精力来证明自己的能力和水平;也不再为了些“水票管理”之类的东西而通宵达旦,因为这样做得到的是几个小钱,失去的却是最宝贵的健康。   今天和几个高中同学小聚了一下,或许是人岁大了愿意回忆从前的事,或许是还有些酒意,所以有了上面的这一段话。不过我想这不应该算是牢骚,应该说是一个菜鸟对自己的可笑经历的总结。   我始终认为C语言是一个基础性的语言,以前无论是VB或VFP课,我总会要求同学自己找本谭浩强的《C程序设计》,把预处理命令、指针、结构体与共用体等几部分内容pass过去,阅读其基础部分的内容;而在课时充足的情况下,我也会经常拿C程序书中诸如“鸡兔同笼”这样有趣的题来“折磨”一下班上的同学。   而现在有些日子了,有两个高中同学总跑到我家里来。人活到老、学到老,这本是件好事,不过我还是有些苦恼。因为他们到我家里来学习,不仅不交学费,我还得管他们饭。他们问到的vfp的东西比较多,所以我打算继续把这方面的一些东西翻出来晒晒。从本文开始会探讨一下C程序书中比较经典的几个算法在VFP中实现的问题,当然纯属菜鸟之见,有没有用那可两说,得自己去分析。觉得有用的话,或许可以开拓思路、扩充您的知识面,我很高兴;觉得没用的话,您权当我是吃撑了,您能忍受我罗嗦了这么长时间,我一样很高兴,呵呵。   水仙花实现是一个比较经典的算法题,今天我们首先在vfp中来实现它。   首先我们了解一下什么是“水仙花”。所谓水仙花是指一个n位,其各位数字立方和等于该本身的值,例如:153=13+53+33 ,所以153是一个水仙花。   我们来做一个简单点儿的:求解3位的水仙花,即100至999之间的水仙花。很明显这个程序需要使用循环,并且从水仙花的概念可知,其重点是求解出循环变量当前值的各位数字的值。剩下的工作就简单了,把求解出的各位数字的立方和与循环变量当前值进行比较,如果相等则说明这是一个水仙花,输出它即可。相关说明见代码注释。本文发表于编程入门网:www.bianceng.cn   我们用表单来实现这个例子,运行时如下图:   参照上图开始我们的制作:   一、新建表单,向表单上添加一个标签控件,caption属性值设置为“显示100到999间的水仙花”;添加两个命令按钮command1和command2,并将它们的caption属性值分别设置为“开始”和“清除”;添加一个编辑框控件Edit1,属性值均采用默认的。   二、添加事件代码:   1、“清除”按钮的click事件: thisform.edit1.value="" thisform.refresh   2、“开始”按钮的click事件: local i,a,b,c for i=100 to 999 a=int(i/100) &&百位的值等于这个三位除以100后取整 b=int((i-100*a)/10) &&用这个三位减去它的百位数字与100乘积, &&对得到的差除以10后进行取整,结果就是十位的值 c=i-int(i/10)*10 &&与上面原理相同,这是求个位的值 if i=a^3+b^3+c^3 &&成立说明是水仙花并输出 thisform.edit1.value=thisform.edit1.value+str(i,5)+chr(13) &&用chr(13)换行 endif endfor
代码使用方法是(以实例1为例): 将该实例的源码,比如实例1的1.c文件(可以在001目录下找到), 拷贝到tc编译器目录下,运行tc.exe,打开编译器, 按【F3】键或者“File->Open”菜单命令,打开1.c文件, 按【Ctrl+F9】键,或者“Run->Run”菜单命令,编译运行该程序。 ◎ 光盘目录清单如下: 第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 求整之积 004 比较实大小 005 字符的输出 006 显示变量所占字节 007 自增/自减运算 008 列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机)界面 012 用一维组统计学生成绩 013 用二维实现矩阵转置 014 求解二维组的最大/最小元素 015 利用组求前n个质 016 编制万年历 017 对组元素排序 018 任意进制的转换 019 判断回文 020 求组前n元素之和 021 求解钢材切割的最佳订单 022 通过指针比较整大小 023 指向组的指针 024 寻找指定元素的指针 025 寻找相同元素的指针 026 阿拉伯数字转换为罗马数字 027 字符替换 028 从键盘读入实 029 字符行排版 030 字符排列 031 判断字符串是否回文 032 通讯录的输入输出 033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报游戏 036 模拟社会关系 037 统计文件的字符 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字统计程序 041 学生成绩管理程序 第二部分 据结构篇 042 插入排序 043 希尔排序 044 冒泡排序 045 快速排序 046 选择排序 047 堆排序 048 归并排序 049 基排序 050 二叉搜索树操作 051 二项式系递归 052 背包问题 053 顺序表插入和删除 054 链表操作(1) 055 链表操作(2) 056 单链表就地逆置 057 运动会分统计 058 双链表 059 约瑟夫环 060 记录个人资料 061 二叉树遍利 062 浮点转换为字符串 063 汉诺塔问题 064 哈夫曼编码 065 图的深度优先遍利 066 图的广度优先遍利 067 求解最优交通路径 068 八皇后问题 069 骑士巡游 070 用栈设置密码 071 魔王语言翻译 072 火车车厢重排 073 队列实例 074 K阶斐波那契序列 第三部分 值计算与趣味学篇 075 绘制余弦曲线和直线的迭加 076 计算高次方的尾 077 打鱼还是晒网 078 怎样存钱以获取最大利息 079 阿姆斯特朗 080 亲密 081 自守 082 具有abcd=(ab+cd)2性质的 083 验证歌德巴赫猜想 084 素幻方 085 百钱百鸡问题 086 爱因斯坦的学题 087 三色球问题 088 马克思手稿中的学题 089 配对新郎和新娘 090 约瑟夫问题 091 邮票组合 092 分糖果 093 波瓦松的分酒趣题 094 求π的近似值 095 奇平方的有趣性质 096 角谷猜想 097 四方定理 098 卡布列克常 099 尼科彻斯定理 100 扑克牌自动发牌 101 常胜将军 102 搬山游戏 103 兔子产子(菲波那契列) 104 数字移动 105 多项式乘法 106 产生随机 107 堆栈四则运算 108 递归整四则运算 109 复平面作图 110 绘制彩色抛物线 111 绘制正态分布曲线 112 求解非线性方程 113 实矩阵乘法运算 114 求解线性方程 115 n阶方阵求逆 116 复矩阵乘法 117 求定积分 118 求满足特异条件的列 119 超长正整的加法 第四部分 图形篇 120 绘制直线 121 绘制圆 122 绘制圆弧 123 绘制椭圆 124 设置背景色和前景色 125 设置线条类型 126 设置填充类型和填充颜色 127 图形文本的输出 128 金刚石图案 129 飘带图案 130 圆环图案 131 肾形图案 132 心脏形图案 133 渔网图案 134 沙丘图案 135 设置图形方式下的文本类型 136 绘制正多边形 137 正六边形螺旋图案 138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色填充 147 VGA256色模式编程 148 绘制蓝天图案 149 屏幕检测程序 150 运动的小车动画 151 动态显示位图 152 利用图形页实现动画 153 图形时钟 154 音乐动画 第五部分 系统篇 155 读取DOS系统中的国家信息 156 修改环境变量 157 显示系统文件表 158 显示目录内容 159 读取磁盘文件 160 删除目录树 161 定义文本模式 162 设计立体窗口 163 彩色弹出菜单 164 读取CMOS信息 165 获取BIOS设备列表 166 锁住硬盘 167 备份/恢复硬盘分区表 168 设计口令程序 169 程序自我保护 第六部分 常见试题解答篇 170 水果拼盘 171 小孩吃梨 172 删除字符串中的特定字符 173 求解符号方程 174 计算标准差 175 求取符合特定要求的素 176 统计符合特定条件的 177 字符串倒置 178 部分排序 179 产品销售记录处理 180 特定要求的字符编码 181 求解三角方程 182 新完全平方 183 三重回文 184 奇方差 185 统计选票 186 同时整除 187 字符左右排序 188 符号算式求解 189 数字移位 190 统计最高成绩 191 比较字符串长度 192 合并整 193 矩阵逆置 194 删除指定的字符 195 括号匹配 196 字符串逆置 197 SIX/NINE问题 198 单词个统计 199 方差运算 200 级运算 201 输出素 202 素题 203 序列排序 204 整各位数字排序 205 字符串字母移位 206 Fibonacc列 第七部分 游戏篇 207 商人过河游戏 208 吃游戏 209 解救人质游戏 210 打字训练游戏 211 双人竞走游戏 212 迷宫探险游戏 213 迷你撞球游戏 214 模拟扫雷游戏 215 推箱子游戏 216 五子棋游戏 第八部分 综合实例篇 217 综合CAD系统 218 功能强大的文本编辑器 219 图书管理系统 220 进销存管理系统 //========= End of the file. 文件内容结束 ===============\\
《妙趣横生的算法(C语言实现)》可作为算法入门人员的教程,也可以作为学习过C语言程序设计的人士继续深造的理想读物,也可作为具有一定经验的程序设计人员巩固和提高编程水平,查阅相关算法实现据结构知识的参考资料,同时也为那些准备参加与算法和据结构相关的面试的读者提供一些有益的帮助。最大的特色在于实例丰富,题材新颖有趣,实用性强,理论寓于实践之中。理论与实践相结合,旨在帮助读者理解算法,并提高C语言编程能力,培养读者的编程兴趣,并巩固已有的C语言知识。全书分为2个部分共10章,内容涵盖了编程必备的基础知识(如据结构、常用算法等),编程实例介绍,常见算法和据结构面试题等。可以使读者开阔眼界,提高编程的兴趣,提高读者的编程能力和应试能力。 目录: 第1部分 基础篇 第1章 据结构基础 1.1 什么是据结构 1.2 顺序表 1.2.1 顺序表的定义 1.2.2 向顺序表中插入元素 1.2.3 从顺序表中删除元素 1.2.4 实例与分析 1.3 链表 1.3.1 创建一个链表 1.3.2 向链表中插入结点 1.3.3 从链表中删除结点 1.3.4 销毁一个链表 1.3.5 实例与分析 1.4 栈 1.4.1 栈的定义 1.4.2 创建一个栈 1.4.3 入栈操作 1.4.4 出栈操作 1.4.5 栈的其他操作 1.4.实例与分析 1.5 队列 1.5.1 队列的定义 1.5.2 创建一个队列 1.5.3 入队列操作 1.5.4 出队列操作 1.5.5 销毁一个队列 1.5.6 循环队列的概念 1.5.7 循环队列的实现 1.5.8 实例与分析 1.6 树结构 1.6.1 树的概念 1.6.2 树结构的计算机存储形式 1.6.3 二叉树的定义 1.6.4.二叉树的遍历 1.6.5 创建二叉树 1.6.6 实例与分析 1.7 图结构 1.7.1 图的概念 1.7.2 图的存储形式 1.7.3 邻接表的定义 1.7.4.图的创建 1.7.5 图的遍历(1)——深度优先搜索 1.7.6 图的遍历(2)——广度优先搜索 1.7.7 实例与分析 第2章 常用的查找与排序方法 2.1 顺序查找 2.2 折半查找 2.3 排序的概述 2.4 直接插入排序 2.5 选择排序 2.6 冒泡排序 2.7 希尔排序 2.8 快速排序 第3章 常用的算法思想 3.1 什么是算法 3.2 算法的分类表示及测评 3.2.1 算法的分类 3.2.2 算法的表示 3.2.3 算法性能的测评 3.3 穷举法思想 3.3.1 基本概念 3.3.2 寻找给定区间的素 3.3.3 TOM的借书方案 3.4 递归与分治思想 3.4..1 基本概念 3.4.2 计算整的划分 3.4.3 递归的折半查找算法 3.5 贪心算法思想 3.5.1 基本概念 3.5.2 最优装船问题 3.6 回溯法 3.6.1 基本概念 3.6.2 四皇后问题求解 3.7 值概率算法 3.7.1 基本概念 3.7.2 计算定积分 第2部分 编程实例解析 第4章 编程基本功 4.1 字符类型统计器 4.2 计算字符的ASCII码 4.3 嵌套if.else语句的妙用 4.4 基于switch语句的译码器 4.5 判断闰年 4.6 指针变量作参 4.7 矩阵的转置运算 4.8 矩阵的乘法运算 4.9 巧用位运算 4.10 文件的读写 4.11 计算文件的大小 4.12 记录程序的运行时间 4.13 十进制/二进制转化器 4.14 打印特殊图案 4.15 打印杨辉三角 4.16 复杂级的前n项和 4.17 寻找矩阵中的“鞍点” 4.18 n阶勒让德多项式求解 4.19 递归反向输出字符串 4.20 一年中的第几天 第5章 学趣题(一) 5.1 舍罕王的失算 5.2 求两个的最大公约和最小公倍 5.3 歌德巴赫猜想的近似证明 5.4 三色球问题 5.5 百钱买百鸡问题 5.6 判断回文数字 5.7 填数字游戏求解 5.8 新郎和新娘 5.9 爱因斯坦的阶梯问题 5.10 寻找水仙花 5.11 猴子吃桃问题 5.12 兔子产仔问题 5.13 分解质因 5.14 常胜将军 5.15 求兀的近似值 5.16 魔幻方阵 5.17 移数字游戏 5.18 数字的全排列 5.19 完全 5.20 亲密 5.21 数字翻译器 5.22 递归实现制转换 5.23 谁在说谎 第6章 学趣题(二) 6.1 连续整固定和问题 6.2 表示成两个的平方和 6.3 具有特殊性质的 6.4 验证角谷猜想 6.5 验证四方定理 6.6 递归法寻找最小值 6.7 寻找同构 6.8 验证尼科彻斯定理 6.9 三重回文数字 6.10 马克思手稿中的学题 6.11 渔夫捕鱼问题 6.12 寻
C语言是古老而长青的编程语言,它具备了现代程序设计的基础要求,它的语法是很多其他编程语言的基础,在系统程序、嵌入式系统等领域依然是无可替代的编程语言,在各类编程语言排行榜上常年占据前两名的位置。 本课程是零基础的编程入门课,是后续的操作系统、编译原理、体系结构等课程的基石。 —— 课程团队 课程概述 程序设计是一门基础课程。对于计算机相关专业而言,程序设计是专业基础知识,是进一步学习其他专业知识的第一步阶梯;对于非计算机专业而言,程序设计的学习有助于理解计算机的能力所在,理解哪些是计算机擅长解决的问题,怎样的方式方法是计算机擅长的手段,从而能更好地利用计算机来解决本专业领域内的问题。 C语言是古老而长青的编程语言,它具备了现代程序设计的基础要求,它的语法是很多其他编程语言的基础,在系统程序、嵌入式系统等领域依然是无可替代的编程语言,在各类编程语言排行榜上常年占据前两名的位置。 对于非计算机专业的学生,学习本课程的主要目的是掌握程序设计的基本方法,C语言是教学媒介。但是对于计算机专业的学生,本课程是向后续的计算机组成、操作系统、编译原理、体系结构等课程前进的基石,对于C语言本身甚至程序设计语言基础原理的深入理解都是应该掌握的。 本课程是零基础的入门课程,完成本课程之后,就能具有初步的运用C语言编写程序的能力。要想完整的学习C语言,还需要进一步学习本课程的后续课程——《C语言程序设计进阶》。 程序设计是实践性很强的课程,该课程的学习有其自身的特点,听不会,也看不会,只能练会。你必须通过大量的编程训练,在实践中掌握编程知识,培养编程能力,并逐步理解和掌握程序设计的思想和方法。在这里所提供的,只是基础的知识讲解,要想学会编程,还需要更多时间的投入和努力。 为了学习编程,你需要有一台计算机,安装必要的编程软件。无论是MS Windows、Mac OS X还是Linux,都有适合C语言编程的软件。如果搞不定自己电脑上的编程软件,我们也会提供在网页中编写、运行C语言程序的方法。 课程大纲 01 程序设计与C语言 课时 1 计算机和编程语言 2 C语言 3 第一个程序 02 计算 课时 1 变量 2 据类型 3 表达式 4 在线评判系统 03 判断与循环 课时 1 判断 2 循环 04 进一步的判断与循环 课时 1 逻辑类型和运算 2 级联和嵌套的判断 3 多路分支 4 循环的例子 5 判断和循环常见的错误 05 循环控制 课时 1 循环控制 2 多重循环 3 循环应用 06 组与函 课时 1 组 2 函的定义与使用 3 函的参和变量 4 二维组 07 组运算 课时 1 组运算 2 搜索 3 排序初步 08 指针与字符串 课时 1 指针 2 字符类型 3 字符串 4 字符串计算 预备知识 作为第一门编程课,本课程可以零基础学习。大学计算机(大学计算机基础、计算思维导论)等课程对于理解本课程的部分内容有帮助,但这些课程的学习不是必须的。 证书要求 课程的总分达到60分以上,可以获得本课程的合格证书。 课程的总分达到85分以上,可以获得本课程的优秀证书。 参考资料 何钦铭、颜晖,《C语言程序设计(第3版)》,高等教育出版社,2015年,ISBN 978-7-04-043128-3 颜晖、张泳,《C语言程序设计实验与习题指导(第3版)》,高等教育出版社,2015年,ISBN 978-7-04-043563-4 常见问题 Q:我需要特殊版本的计算机吗? A:任何计算机都可以用于C语言编程,包括但不限于各个版本的MS Windows、各个版本的Mac OS X、各种发行版本的Linux。有的手机有app也能实现C语言编程,不过我们不推荐那么小的屏幕。 Q:我需要安装特定的软件才能做这门课的作业吗? A:任何C语言的开发工具都可以。课程演示会使用Dev C++及命令行环境,但是你使用任何其他开发工具都不会影响做作业的正确性。可以使用的其他工具包括但不限于MS Visual Studio、C-Free等。 Q:每周会发布多少时间的视频?我需要花多少时间来学习? A:我们按照90分钟的授课时间来设计课程。但是发布的视频肯定小于90分钟,一般在50到70分钟左右。因为在线下上课时,老师可能会回顾一下上周的内容、某些内容会看学生的反应重复几遍、会当堂问做一些提问,以及在各种软件等教学工具之间切换,这些都要花点时间,而这些在线上课程中都不存在了,所以视频的时间不会正好是90分钟。但是一般我们设计课程需要1:1.5到1:2的课后学习时间,这包括预习、作业、练习和复习的时间,所以每周大约需要花费三到五小时的时间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值