- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C实验4.5
实验四:循环结构程序设计
(1).输入正整数n, 计算n的阶乘。使用递方法进行程序设计。
1.由于n!=1*2*3*……*n,因此,要计算n的阶乘可以从1开始,由1的阶乘乘以2得到2的阶乘,再乘以3得到3的阶乘.......以此类推。
2、从第一个数开始,依次将乘数赋给i,并进行操作result(result*i,称为阶乘;即if(n1){ return 1
result=1
result(result*i;}
3、输出result;
四、源程序
五、输出结果及调试
(1)分别输入数据 -, 1 ,5, 10,调试运行程序,并记录程序结果。
输入 结果 输入错误 1 1 5 120 10 3.6288e+006 (2)编译运行程序:
(2)输入若干字符,统计其中数字字符、空白字符和其他字符的个数,输入EOF结束。 2.掌握switch及break语句的使用。
二、实验内容
1.对字符进行统计,读入字符后用switch 语句判断字符的种类:要统计3种字符数,需要定义3个用于计数的变量 nDigit ,nWhite ,nOther
2.并置初始值0;读入字符用cin.get()函数,在这里用while循环比较合适。白字符指空白键、Tab键和回车键。EOF表示End of File ,其值为-1,从键盘输入 CTRL+Z键即可。
采用重载的 int cin.get( )函数,它返回的是整型数,所以能返回EOF。nDigit ,nWhite ,nOther分别代表3种字符数;
设置nWhite、nOther、nDigit变量来表示白字符、其他字符和数字字符。
while (c!= EOF ){
case ‘数字’: nDigit自加1;break;
case ‘换行跳行’: nWhite自加1;break;
default: nOther自加1;break;
}
3、输出nDigit ,nWhite ,nOther字符数结果。
三、源程序
四、输出结果
编译并运行程序:
(3)约瑟夫(Josephus)问题:n 个人围坐成一圈,从 1 开始顺序编号;游戏开始,从第一个人开始由 1 到 m 循环报数,报到 m 的人退出圈外,问最后留下的那个人原来的序号。首先要定义一个数组,其元素个数为n。n定义为常变量,以便定义数组。 数组元素的值标识该人是否出局,1在圈内,0出局。值为0的元素不参加报数。可用一个整型数k做计数器,采用倒计数,记录留下的人数。数组是线性排列的,而人是围成圈的,用数组表示要有一种从数组尾部跳到其头部的技巧,即下标加1除以n求余数。 while (l=n){
for(int i=1;i=n;i++){
if(a[i]==1) j++;
if(j==m) a[i]=0;
if (i==nk1) cout1endl;
else couti+(k-1)endl;
3.输出最后留下的那个人原来的序号。
一、实验目的
1.学会do-while循环结构及递推程序设计。
2.掌握与循环语句相关的continue语句的使用。
二、实验内容
由ASCII码表可以看出,大写英文字母的ASCII码值在65至90之间,小写英文字母的ASCII码值在97至122 之间,每一个英文字母的大写和小写的ASCII码相差32。
三、伪码表述
算法:1.定义字符变量str[100],并初始化;
2.while(str[++i]!=\0)
do{
if(str[i]a||str[i]z)continue;
str[i]-=32;
}
3.输出字符结果;
三、源程序
四、输出结果
编译并运行程序:
(5). 编程:设计一个程序,输入一个日期,要求算出这一天是本年的第几天。
要算出某天是当年的第几天,应该将当年中本月之前所有月的天数相加,再加上本月至此的天数。但这里有一个闰年问题,2月是一个特殊月,闰年的2月有29天,非闰年的2月只有28天。判断某年是闰年的条件是:该年号能被4整除但不能被100整除,或者能被400整除。例如,1996、2000是闰年,但1800不是闰年。
else if month in (4,6,9
您可能关注的文档
- ADI旋变解码电路笔记(中文).pdf
- Assembly补码运算.pdf
- AT89C52单片机在轿车空调温度控制系统中的应用1.pdf
- ATR_FTIR研究超支化聚酯对PEG型聚氨酯弹性体的力学性能及形态的影响.pdf
- AutoCAD中连接圆弧的画法研究.pdf
- AUTOCAD2007引线标注文字位置修改.pdf
- AutoCAD工具箱_AutoTOOLS简介.pdf
- AvidDS后期合成系统.doc
- A型变尺寸装箱问题之模型及算法研究.pdf
- A类考试题库(配电类).doc
- 执业药师之《药事管理与法规》检测卷讲解含答案详解(最新).docx
- 执业药师之《药事管理与法规》全真模拟模拟题及答案详解(全国通用).docx
- 2025年执业药师之《西药学综合知识与技能》模拟试题附参考答案详解(突破训练).docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺模拟题库含答案详解(培优a卷).docx
- 2025年执业药师之《西药学综合知识与技能》真题精选附答案详解(名师推荐).docx
- 执业药师之《药事管理与法规》强化训练模考卷带答案详解.docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺测试卷包附参考答案详解(b卷).docx
- 2025年执业药师之《西药学综合知识与技能》模考模拟试题及参考答案详解(夺分金卷).docx
- 2025年执业药师之《西药学综合知识与技能》真题含答案详解【b卷】.docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺模拟题库带答案详解(b卷).docx
文档评论(0)