编辑推荐
精讲100个不同类型的C语言趣味编程题的求解过程
培养编程兴趣,拓宽编程思维,提高编程能力,增强求职竞争力
50小时教学视频 + 758个实例源文件 + 61个程序流程图
精选的实例都兼顾了程序的趣味性和实用性,涵盖了C程序设计的基础知识和常用算法
每个实例都遵循先提出问题,再分析问题,最后实现的写作风格,并给出了详细的实现代码和注释
多数实例来自编程大赛和企业面试题,具有很强的实用性
超值DVD光盘中提供了大量的C语言教学视频与实例源文件
内容简介
《C语言趣味编程100例》讲解了100个各种类型的C语言编程趣味题的求解过程,旨在帮助读者培养编程兴趣,拓宽C语言编程思维,提高C语言编程能力,掌握用程序设计解决实际问题的方法与技巧。《C语言趣味编程100例》取材注重趣味性与实用性,内容涵盖了C语言编程的基础知识和常用算法,讲解时给出了实例的详细代码及注释。《C语言趣味编程100例》附带1张DVD光盘,收录了本书实例源文件、50小时C语言教学视频及758个C语言编程实例源文件,以方便读者高效、直观地学习。
《C语言趣味编程100例》共分12章。第1章介绍了10个趣味算法入门实例;第2章介绍了11个趣味数学实例;第3章介绍了10个趣味整数实例;第4章介绍了8个趣味分数实例;第5章介绍了7个趣味素数实例;第6章介绍了8个趣味逻辑推理实例;第7章介绍了8个趣味游戏实例;第8章介绍了10个趣味数组实例;第9章介绍了7个趣味函数递归实例;第10章介绍了6个定理与猜想实例;第11章介绍了8个趣味图形实例;第12章介绍了7个综合性较强的其他趣味实例。
《C语言趣味编程100例》适合高校、职业技术院校及社会培训学校的学生阅读,也适合C语言编程爱好者阅读,还可作为各级程序设计选拔赛和全国青少年信息学奥林匹克竞赛的参考书。
超值DVD光盘内容 100个本书涉及的实例源文件
9.2小时本书配套教学视频
123个C语言入门实例源文件
9.8小时C语言入门教学视频
535个C语言经典实例源文件
31小时C语言经典实例教学视频
作者简介
贾蓓,讲师。研究方向为数据库与XML技术。在军队院校任教4年,讲授多门计算机相关课程。近年来在国内外学术刊物及学术会议上发表论文10余篇,其中EI收录7篇。喜欢研究新技术,有丰富的C语言编程和Java项目开发经验。参与编写了《Java Web整合开发实战——基于Struts2+Hibernate+Spring》一书。
郭强,博士,讲师。研究方向为智能交通和复杂系统建模。精通多种编程语言,对计算机与信息技术有深刻的理解和丰富的研发经验。在校期间参与了多个项目的开发工作。
刘占敏,讲师。对信息技术及C语言编程有深刻的理解。有丰富的C语言教学经验及二级C语言等级考试辅导经验。参与过相关图书的编写及项目开发工作。
内页插图
目录
第1章 趣味算法入门( 教学视频:90分钟)
1.1 百钱百鸡问题
1.2 借书方案知多少
1.3 打鱼还是晒网
1.4 抓交通肇事犯
1.5 兔子产子问题
1.6 牛顿迭代法求方程根
1.7 最佳存款方案
1.8 冒泡排序
1.9 折半查找
1.10 数制转换
第2章 趣味数学问题( 教学视频:59分钟)
2.1 个人所得税问题
2.2 存钱问题
2.3 分糖果
2.4 三色球问题
2.5 出售金鱼
2.6 求车速
2.7 爱因斯坦的数学题
2.8 猜牌术
2.9 舍罕王的失算
2.10 马克思手稿中的数学题
2.11 换分币
第3章 “各种”趣味整数( 教学视频:49分钟)
3.1 完数
3.2 亲密数
3.3 自守数
3.4 回文数
3.5 水仙花数
3.6 阿姆斯特朗数
3.7 高次方数的尾数
3.8 黑洞数
3.9 勾股数
3.10 不重复的3位数
第4章 趣味分数( 教学视频:47分钟)
4.1 最大公约数
4.2 最小公倍数
4.3 歌星大奖赛
4.4 将真分数分解为埃及分数
4.5 列出真分数序列
4.6 多项式之和
4.7 分数比较
4.8 计算分数精确值
第5章 趣味素数( 教学视频:36分钟)
5.1 素数
5.2 哥德巴赫猜想
5.3 要发就发
5.4 可逆素数
5.5 回文素数
5.6 孪生素数
5.7 梅森素数
第6章 趣味逻辑推理( 教学视频:49分钟)
6.1 谁家孩子跑的最慢
6.2 新郎和新娘
6.3 谁在说谎
6.4 谁是窃贼
6.5 旅客国籍
6.6 委派任务
6.7 谜语博士的难题
6.8 黑与白
第7章 趣味游戏( 教学视频:40分钟)
7.1 人机猜数
7.2 搬山游戏
7.3 抢30
7.4 黑白子交换
7.5 自动发牌
7.6 常胜将军
7.7 24点
7.8 掷骰子
第8章 趣味数组( 教学视频:53分钟)
8.1 狼追兔子
8.2 选美比赛
8.3 邮票组合
8.4 平分7筐鱼
8.5 农夫过河
8.6 矩阵转置
8.7 魔方阵
8.8 马踏棋盘
8.9 删除“*”号
8.10 指定位置插入字符
第9章 趣味函数递归( 教学视频:46分钟)
9.1 递归解决年龄问题
9.2 递归解决分鱼问题
9.3 汉诺塔问题
9.4 猴子吃桃
9.5 杨辉三角形
9.6 卡布列克常数
9.7 逆序输出数字
第10章 定理与猜想( 教学视频:32分钟)
10.1 四方定理
10.2 角谷猜想
10.3 ? 的近似值
10.4 尼科彻斯定理
10.5 奇数平方的有趣性质
10.6 回文数的形成
第11章 趣味图形( 教学视频:18分钟)
11.1 绘制余弦曲线
11.2 绘制空心圆
11.3 绘制空心菱形
11.4 画直线
11.5 画圆和圆弧
11.6 画彩色图形
11.7 填充彩色图形
11.8 图形模式下显示字符
第12章 其他趣味问题( 教学视频:35分钟)
12.1 双色球
12.2 填表格
12.3 求出符合要求的素数
12.4 约瑟夫环
12.5 数据加密问题
12.6 三色旗
12.7 统计学生成绩
精彩书摘
第3章 “各种”趣味整数
整数通常是程序设计语言的一种基础形态,例如Java及C编程语言的int类型。整数问题是实际应用中遇到的一类问题。整型数据从所占内存大小可分为基本整型(int)、长整型(longint)和短整型(shortint),根据数据满足的某些性质又可将其分为“完全数”、“水仙花数”、“亲密数”等。整数问题中经常用到的是对数据的拆分、组合,初学者一定要从实例中总结方法并掌握。本章主要通过对各类整数问题的算法进行讲解,以培养读者的编程思维方式与编程技巧。本章主要内容如下:
完数;
亲密数;
自守数;
回文数;
水仙花数;
阿姆斯特朗数;
高次方数;
黑洞数;
沟股数;
不重复的3位数。
3.1完数
1.问题描述
求某一范围内完数的个数。
如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。
2.问题分析
根据完数的定义,解决本题的关键是计算出所选取的整数i(i的取值范围不固定)的因子(因子就是所有可以整除这个数的数),将各因子累加到变量s(记录所有因子之和),若s等于i,则可确认i为完数,反之则不是完数。
3.算法设计
对于这类求某一范围(由于本题范围不固定,在编程过程中采用键盘输入的方式)内C语言趣味编程100例
·70·
满足条件的数时,一般采用遍历的方式,对给定范围内的数值一个一个地去判断是否满足条件,这一过程可利用循环来实现。
本题的关键是求出选取数值i的因子,即从1到i-1范围内能整除i的数,看某一个数j是不是i的因子,可利用语句if(i%j==0)进行判断,求某一个数的所有因子,需要在1到i-1范围内进行遍历,同样采用循环实现。因此,本题从整体上看可利用两层循环来实现。外层循环控制该数的范围2~n;内层循环j控制除数的范围为1~i,通过i对j取余,是否等于0,找到该数的各个因子,程序段如下:
for(i=2;i<=n;i++)
{
…
for(j=1;j
{
…
}
if(s==i)
输出当前i是完数
}
对于某个选定的数,将求得的各因子累加到变量s(累加过程中用到s的初值,所以s初值为0)之后,s的值发生改变,若直接将下一个选定数的因子加到s上,得到的值并非所求(此时s的初值不是0而是上一个选定数的因子之和)。因此每次判断下一个选定数之前,必须将变量s的值重新置为0,编程过程中一定要注意变量s重新置0的位置,语句放的位置不正确得到的结果也不是正确结果。
注意:C语言中的整数问题,经常涉及判断两数是否相等或某变量(或表达式)是否满足某一条件的情况,对于这类问题,初学者经常会存在对赋值符号“=”与等于号“==”混淆的问题。
赋值符号“=”:基本的赋值运算符是“=”。它的优先级别低于其他的运算符,所以对该运算符往往最后读取。它的作用是将一个表达式的值赋给一个(左值)变量,左值必须能够被修改,不能是常量。如while(i=10)……此表达式的作用是将右值“10”赋给左值i,每次判断i的值都为10,所以表达式的值为非0,即判定条件为真,导致程序进入死循环。等于号“==”:是关系运算符的一种,结果只有两种“真”或“假”。作用是用来判断等号“==”两边参与运算的值是否相等,若相等,则返回“真”,否则返回“假”。如while(i==10)……这里的表达式作用是判断变量i的值是否等于10,若相等,则表达式的值为真,如不相等则为假,当表达式为真时,程序继续执行循环体语句,否则结束循环。4.确定程序框架
程序流程图如图3.1所示。
5.完整程序
#include
main()
{
inti,j,s,n;/*变量i控制选定数范围,j控制除数范围,s记录累加因子之和*/
printf("请输入所选范围上限:");
scanf("%d",&n;);/*n的值由键盘输入*/
第3章“各种”趣味整数
·71·
for(i=2;i<=n;i++)
{
s=0;/*保证每次循环时s的初值为0*/
for(j=1;j
{
if(i%j==0)/*判断j是否为i的因子*/
s+=j;
}
if(s==i)/*判断因子之和是否和原数相等*/
printf("It'saperfectnumber:%d.
",i);
}
}
……
前言/序言
C语言趣味编程100例(附光盘)
C语言趣味编程100例(附光盘) 电子书 下载 mobi epub pdf txt