



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题5.7给出一个不多于5位的正整数,要求:1. 输出它是几位;2. 分别打印出每一位数字;3. 按逆序打印出各位数字;例如原数为321,应输出 123。分析:对于要求1,可用嵌套的if语句判断它是几位(1000099999为5位,10009999为4位,.),将位数记在变量(如w)中;对于要求2,先分离出整数的每一位数字,再打印出来。分离可用以下公式实现:p5=a/10000; p4=a%10000/1000; p3=a%1000/100; p2=a%100/10; p1=a%10; 打印可用switch语句根据w的值从不同的位数开始输出;对于要求3,无论几位数,输出时都要从p1开始。习题5.9输入四个变量,要求按大小顺序输出。分析:设四个变量为a,b,c,d,输入时大小顺序不定,输出时按大小顺序排列有两种情况:一种是a,b,c,d顺序固定,可改变变量的值,另一种是要求不改变它们原来的值, a,b,c,d顺序可变。先看第一种情况:若输出时按a,b,c,d顺序排列,则应保证a的值最大,b的值第二,c的值第三,d的值最小。要实现这一点,就要将a,b,c,d进行排列。排列可这样进行:先将a分别与b、c、d比较,遇大者则与a交换值,这一轮比较结束后,a中就是最大值了,然后再将b与d、c比较,遇大者则与b交换值,这一轮使b比c、d都大,剩下c、d再做一次比较,大者存在c中,d中就是最小值。再看第二种情况:a,b,c,d的全排列P4=4!,即共有24种排列顺序,那么就可形成24个分支,分别按不同的顺序输出。这种做法程序很长,这里不写了,下面给出三个变量的输出程序,供参考。a,b,c的大小关系有六种,输出顺序就有六种:大小关系: 输出顺序:abc a,b,cacb a,c,bbac b,a,cbca b,c,acab c,a,bcba c,b,a按照题目要求,应形成六个分支。由于产生分支的条件不是单一的比较相等关系,因此应采用if语句,而不能用switch语句。可以采用并列的if语句,也可以采用嵌套的if语句。并列的if语句如下:if(ab&bc)printf(“%d %d %d”,a,b,c);if(ac&cb)printf(“%d %d %d”,a,c,b);if(ba&ac)printf(“%d %d %d”,b,a,c);if(bc&cb)printf(“%d %d %d”,b,c,a);if(ca&ab)printf(“%d %d %d”,c,a,b);if(cb&ba)printf(“%d %d %d”,c,b,a);这种写法其实没有必要。因为如果第一个条件成立(符合第一种顺序),则不会再满足其它条件,本可不再作其它判断,但是,写成并列的if语句,就要逐个判完。若改成嵌套的if语句,就可避免重复判断。if(ab) if(ac) printf(t%d,a); /* 确定a最大 */ if(bc)printf( %d %dn,b,c); /* abc */ else printf( &d %dn,c,b); /* acb */ else /* ab成立,aab */else /* 否定ab,即ba */ if(bc) printf(t%d,b); /* 确定b最大 */ if(ac)printf( %d %dn,a,c); /* bac */ else printf( %d %dn ,c,a); /* bca */ else /* ab不成立,bc也不成立 */ printf(t%d %d %dn,c,b,a); /* cba */习题6.8有一分数序列:求出这个数列的前20项之和。 分析:这个数列各项之间的关系是后一项的分子为前一项的分子分母之和,后一项的分母为前一项的分子。设f2为分子,f1为分母,s存放累加和,构造循环每次改变f1和f2的值,再累加到s中。要注意的是,每次改变f1和f2时,应先将前项分子f2保留到一个变量(比如f)中,再用f的值=后项分母f1,即f=f2;f2=f1+f2;f1=f;s=s+f2/f1;才能得到正确结果。习题6.2 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。分析:构造循环,每次输入一个字符,直到遇到回车键。例如这样:while(c=getchar()!=n)循环体中对变量c进行判断,并根据其所属字符类型进行分类计数。习题6.10猴子吃桃子问题,猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上再想吃时,就只剩一个桃子了。求第一天共摘多少桃子。分析:设变量x存放桃子数目,i表示天数。要知道第一天的桃子数,应从第十天往前推算。第十天:x=1;第九天到第一天:x=(x+1)*2;按照这个规律循环九次,就可算出第一天的桃子数目。 程序:main()int x,i;x=1;for(i=9;i=1;i-)x=(x+1)*2;printf(total:%dn,x);习题6.11用迭代法求。求平方根的迭代公式为: 分析:迭代法的思路是:选一个方程的近似根x0(本题x0的初值设为a/2)代入右端,算出新的近似根x1,当|x1-x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025三月份办公楼地下室侧墙防水基面处理劳务协议
- 灌溉自动化控制系统考核试卷
- 环保编织品在绿色建筑内外装饰考核试卷
- 工业机器人焊接工艺与控制考核试卷
- 电子专用材料生命周期评价考核试卷
- 体育赛事服务与观众满意度考核试卷
- 涂料店铺布局优化考核试卷
- 《万里长征》新民主主义革命的兴起课件
- 文案-北京明天第一城商业策划案
- 2025第二季度离婚后量子密钥分发设备处置协议
- 2024年湖南省高等学校对口招生考试英语试卷试题真题
- 公司2025年工会工作要点
- 2025年中国煤炭地质总局社会招聘20人笔试参考题库附带答案详解
- 2025内蒙古能源集团智慧运维公司社会招聘(105人)笔试参考题库附带答案详解
- 公共卫生应急管理调研报告范文
- 【9物一模】安徽合肥瑶海区2025年中考物理一模试卷
- 2025-2030中国食品灭菌设备行业市场发展趋势与前景展望战略研究报告
- 广东省深圳市宝安区10校联考2023-2024学年八年级下学期期中数学试题(含答案)
- 2025年全国中医医师定期考核中医专业理论知识考试题库及答案(共六套)
- 餐厅点菜技巧培训
- 大风天气施工专项方案
评论
0/150
提交评论