第3讲C基础与编程2.ppt

上传人:王** 文档编号:595396 上传时间:2023-12-08 格式:PPT 页数:27 大小:141.50KB
下载 相关 举报
第3讲C基础与编程2.ppt_第1页
第1页 / 共27页
第3讲C基础与编程2.ppt_第2页
第2页 / 共27页
第3讲C基础与编程2.ppt_第3页
第3页 / 共27页
第3讲C基础与编程2.ppt_第4页
第4页 / 共27页
第3讲C基础与编程2.ppt_第5页
第5页 / 共27页
第3讲C基础与编程2.ppt_第6页
第6页 / 共27页
第3讲C基础与编程2.ppt_第7页
第7页 / 共27页
第3讲C基础与编程2.ppt_第8页
第8页 / 共27页
第3讲C基础与编程2.ppt_第9页
第9页 / 共27页
第3讲C基础与编程2.ppt_第10页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第3讲C基础与编程2.ppt》由会员分享,可在线阅读,更多相关《第3讲C基础与编程2.ppt(27页珍藏版)》请在优知文库上搜索。

1、C+程序设计1C+基础与编程基础与编程(2)C+程序设计2 1 编程练习一:回文素数的判断编程练习一:回文素数的判断 基本思想:基本思想:(1 1)输出偶素数)输出偶素数2 2(2 2)在奇数中寻找素数)在奇数中寻找素数(3 3)判断该数是否是回文数)判断该数是否是回文数C+程序设计31 编程练习一:回文素数的判断编程练习一:回文素数的判断 程序:程序:#include#includeusing namespace std;int main()int i,j,s,n;cout2“”;for(i=3;i10000;i+=2)n=int(sqrt(i);for(j=3;j=n;j+=2)if(i%

2、j=0)break;if(j=n)continue;n=i;s=0;while(n)s=10*s+n%10;n/=10;if(s=i)couti“”;C+程序设计4 2 编程练习二:数据循环显示编程练习二:数据循环显示C+程序设计52 编程练习二:数据循环显示编程练习二:数据循环显示 基本思想:基本思想:(1 1)从第二行开始,每行都是由上一行的元素向)从第二行开始,每行都是由上一行的元素向右循环移动一个元素后得到的右循环移动一个元素后得到的(2 2)可以不断将数组)可以不断将数组a a的元素向右循环移动,然的元素向右循环移动,然后输出它后输出它C+程序设计6 程序:程序:#includeus

3、ing namespace std;int main()int a6,i,j,k;for(i=0;iai;for(i=0;i6;i+)for(j=0;j6;j+)coutaj“”;cout0;j-)aj=aj-1;a0=k;2 编程练习二:数据循环显示编程练习二:数据循环显示C+程序设计7 Josephus问题问题-约瑟夫问题约瑟夫问题3 编程练习三:编程练习三:Josephus问题问题C+程序设计83 编程练习三:编程练习三:Josephus问题问题 基本思想:基本思想:(1 1)对每一个小孩赋以标识值作为小孩离开(值为)对每一个小孩赋以标识值作为小孩离开(值为0 0)和不离开(值为和不离开

4、(值为1 1)的标志)的标志(2 2)用指针变量指向第)用指针变量指向第s s个小孩,并用个小孩,并用i i来计数,当来计数,当i i等于等于m m时,该小孩离开圈子,此时将该小孩的值置为时,该小孩离开圈子,此时将该小孩的值置为0 0(作为离开标志)(作为离开标志)(3 3)将指针变量指向下一个值不为)将指针变量指向下一个值不为0 0的小孩,的小孩,i i重新计重新计数,当数,当i i等于等于m m时,该小孩离开圈子,再将该小孩的值时,该小孩离开圈子,再将该小孩的值置为置为0 0,如此反复,直到剩下最后一个小孩,如此反复,直到剩下最后一个小孩(4 4)查找值不为)查找值不为0 0的那个小孩,然

5、后将其序号值返回的那个小孩,然后将其序号值返回C+程序设计9 程序:程序:#includeusing namespace std;int josephus(int n,int m,int s);int main()cout“最后胜利者:最后胜利者:NO。”josephus(10,8,1)endl;cout“最后胜利者:最后胜利者:NO。”josephus(10,2,1)endl;3 编程练习三:编程练习三:Josephus问题问题C+程序设计10int josephus(int n,int m,int s)int win;/最后胜利者的序号最后胜利者的序号 int*child=new intn

6、,*p,num=n;int i;/计数计数 int k;/循环变量循环变量 for(k=0;kn)|(s1)cout“开始报数的小孩序号超过范围!开始报数的小孩序号超过范围!”1)if(*p)i+;/值不为值不为0计数计数 if(i=m)/报到报到m时,置为时,置为0,重新计数,小孩数减,重新计数,小孩数减1 *p=0;i=0;num-;p+;/向后报数向后报数 if(pchild+n-1)p=child;/回到第回到第0个元素个元素 /查找胜利者查找胜利者 for(k=1;k=n;k+)if(0!=childk-1)win=k;break;delete nchild;return win;3

7、 编程练习三:编程练习三:Josephus问题问题C+程序设计11int josephus(int n,int m,int s)int win;/最后胜利者的序号最后胜利者的序号 int*child=new intn,num=n;int i,j;/i计数计数,j下标(小孩序号下标(小孩序号-1)int k;/循环变量循环变量 for(k=0;kn)|(s1)cout“开始报数的小孩序号超过范围!开始报数的小孩序号超过范围!”endl;delete nchild;return-1;j=s-2;for(k=1;k=n;k+)i=0;while(im)if(jn-1)j+;else j=0;i+=c

8、hildj;coutj+1“”;childj=0;coutendl;delete child;return j+1;3 编程练习三:编程练习三:Josephus问题问题C+程序设计124 深入学习一:左值的概念深入学习一:左值的概念C+程序设计134 深入学习一:左值的概念深入学习一:左值的概念C+程序设计144 深入学习一:左值的概念深入学习一:左值的概念C+程序设计154 深入学习一:左值的概念深入学习一:左值的概念C+程序设计164 深入学习一:左值的概念深入学习一:左值的概念C+程序设计174 深入学习一:左值的概念深入学习一:左值的概念C+程序设计185 深入学习二:关于深入学习二:

9、关于goto语句语句C+程序设计19 5 深入学习二:关于深入学习二:关于goto语句语句C+程序设计20 5 深入学习二:关于深入学习二:关于goto语句语句C+程序设计216 深入学习三:深入学习三:volatile的用法的用法C+程序设计226 深入学习三:深入学习三:volatile的用法的用法C+程序设计236 深入学习三:深入学习三:volatile的用法的用法输出结果:1010C+程序设计246 深入学习三:深入学习三:volatile的用法的用法输出结果:1080C+程序设计256 深入学习三:深入学习三:volatile的用法的用法C+程序设计266 深入学习三:深入学习三:volatile的用法的用法C+程序设计27小知识小知识

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > C/C++资料

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!