《C 语言趣味编程百例精解(二零一六年)》.doc

《C 语言趣味编程百例精解(二零一六年)》.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C 语言趣味编程百例精解(二零一六年)》.doc

C/C++语言经典、实用、趣味程序设计编程百例精解 最简单的问题与算法 1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆4.歌星大奖赛5.求最大数6.高次方数的尾数7.阶乘尾数零的个数8.借书方案知多少9.杨辉三角形10.数制转换11.打鱼还是晒网 12.抓交通肇事犯13.该存多少钱14.怎样存钱利最大15.捕鱼和分鱼16.出售金鱼17.平分七筐鱼18.有限5位数19.8除不尽的自然数20.一个奇异的三位数21.4位反序数 22.求车速23.由两个平方三位数获得三个平方二位数 24.阿姆斯特朗数25.完全数 26.亲密数27.自守数28.回文数29.求具有abcd=(ab+cd)2性质的四位数30.求素数31.歌德巴赫猜想32.可逆素数33.回文素数34.要发就发35.素数幻方36.百钱百鸡问题37.爱因斯坦的数学题38.换分币39.年龄几何40.三色球问题41.马克思手稿中的数学题42.最大公约数和最小公倍数43.分数比较44.分数之和45.将真分数分解为埃及分数46.列出真分数序列47.计算分数的精确值48.新娘和新郞49.委派任务50.谁在说谎51.谁是窃贼52.黑与白53.迷语博士的难题(1)54.迷语博士的难题(2)55.哪个大夫哪天值班56.区分旅客国籍57.谁家孩子跑最慢58.拉丁方阵59.填表格60.1~9分成1:2:3的三个3位数61.1~9组成三个3位的平方数62.由8个整数形成奇特的立方体63.减式还原64.乘式还原65.乘式还原(2)66.除式还原(1)67.除式还原(2)68.九位累进可除数69.魔术师的猜牌术(1)70.魔术师的猜牌术(2)71.约瑟夫问题 72.邮票组合73.和数能表示1~23的5个正整数74.可称1~40磅的4块砝码75.10个小孩分糖果76.小明买书77.波松瓦酒的分酒趣题78.求π的近似值79.求π的近似值(2)80.奇数平方的一个有趣性质81.角谷猜想 82.四方定理83.卡布列克常数84.尼科彻斯定理85.回文数的形成86.自动发牌87.黑白子交换88.常胜将军89.抢30 90.搬山游戏91.人机猜数游戏 92.人机猜数游戏(2)93.汉诺塔94.兎子产子 95.将阿拉伯数字转换为罗马数字96.选美比赛97.满足特异条件的数列 98.八皇后问题99.超长正整数的加法100.数字移动绘制余弦曲线 在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线 *问题分析与算法设计 如果在程序中使用数组,这个问题十分简单。但若规定不能使用数组,问题就变得不容易了。 关键在于余弦曲线在0~360度的区间内,一行中要显示两个点,而对一般的显示器来说,只能按行输出,即:输出第一行信息后,只能向下一行输出,不能再返回到上一行。为了获得本文要求的图形就必须在一行中一次输出两个“*”。 为了同时得到余弦函数cos(x)图形在一行上的两个点,考虑利用cos(x)的左右对称性。将屏幕的行方向定义为x,列方向定义为y,则0~180度的图形与180~360度的图形是左右对称的,若定义图形的总宽度为62列,计算出x行0~180度时y点的坐标m,那么在同一行与之对称的180~360度的y点的坐标就 应为62-m。程序中利用反余弦函数acos计算坐标(x,y)的对应关系。 使用这种方法编出的程序短小精炼,体现了一定的技巧。 *程序说明与注释 #includestdio.h #includemath.h int main() { double y; int x,m; for(y=1;y=-1;y-=0.1) /*y为列方向,值从1到-1,步长为0.1*/ { m=acos(y)*10; /*计算出y对应的弧度m,乘以10为图形放大倍数*/ for(x=1;xm;x++) printf( ); printf(*); /*控制打印左侧的 * 号*/ for(;x62-m;x++)printf( ); printf(*\n); /*控制打印同一行中对称的右侧*号*/ } return 0; } *思考题 如何实现用“*”显示0~360度的sin(x)曲线。 在屏幕上显示0~360度的cos(x)曲线与直线f(x)=45*(y-1)+31的迭加图形。其中cos(x)图形用“*”表示,f(x)用“+”表示,在两个图形相交的点上则用f(x)图形的符号。 绘制余弦曲线和直线 *问题分析与算法设计 本题可以在上题的基础上进行修改。图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。为此,可以先判断图形的交点,再分别控制打印两个不同的图形。 *程序注释与说明 #includestdio.h #includemath.h int main() { double y;

文档评论(0)

ycwf + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档