




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算概论 (Introduction to Computing),主讲人:马思伟 北京大学数字媒体研究所 ,第十二讲 函数与结构化设计(1),课堂练习,将字符串中的重复字符变为一个字符输出,如 abbccceb输出为abceb,赋值到另一个字符数组,#include int main() char str1100, str2100; int i, c; gets(str1); c=1; str20=str10; for(i=1; i=99; i+) if(str1i!=str1i-1) str2c=str1i; c=c+1; str2i!=0 for(i=0; str2i!=0; i+) pr
2、intf(“%c”, str2i); return 0; ,移动数据元素,#inclue int main () char str10; scanf(“%s”, str) int i, j for (i=0; i10; i+) if (stri=stri+1) for(j=i; j10; j+) strj=strj+1; puts(s); return 0; ,直接输出,#include int main () char str100 int i gets(str); printf(“%c”, str0); for(i=1; i=99; i+) if(stri!=stri-1) printf(
3、“%c”, stri); return 0; ,其他,#include #include int main () char s 81; int i, q, x; char j; gets(s); i=1; x=str(s) while si!=0 j=si; if(si-1=j) for(q=i; qx; q+) sq=sq+1; x=x-1; i=i+1; puts(s); return 0; ,#include int main () char s 8=“abbccceb; printf(“%c”, s0); int i; for(i=1; i=7; i+) while (si!=si-1
4、) printf(“%c”, si); return 0; ,赋值标记数据元素,#inclue #include int main () char str ; int i, n=0; gets(str); n=strlen (str); for (i=1; in; i+) if(stri=stri-1) stri =“ “; for (i=0; i=y) return x; /z=x else return y; /z=y; /return z; void main( ) int x=0, y=0, z=0; x = 20; y = 45; int z = max(x, y); ,函数调用的过
5、程,函数调用的过程,函数调用的过程,函数调用的过程,函数调用的过程,函数调用的过程,小结,函数定义、参数传递、调用,课堂练习,用函数调用实现求方程ax2+bx+c=0的根。 比如输入两组参数1,2,1; 1,4,2,分别显示输出求出的方程解。,作业,1.编写自定义函数,该函数可以统计任意一个字符在一个字符串中出现的次数,并将该字符从字符串中删除。如:字符h在字符串hello中出现一次,删除h后的字符串变成ello。 2.回数猜想: 任取一个数,再把它倒过来,并把这两个数相加,然后把这个和数再倒过来,与原和数相加,重复此过程,一定能获得一个回数。例: 68 倒过来是 86 68+86= 154,
6、154+541= 605, 605+506=1111 (回数) 编程,输入任意整数,按上述方法产生一个回数,为简便起见,最多计算7步,看是否能得到一个回数。 要求: 主函数中接收键盘数据,显示该数与其倒数的和,输出每一步计算步骤。 子函数1,计算该数的倒数。 子函数2,验证和是否为回数,,思考题,问题描述 有 n 个人,编号为 1, 2, . . ., n, 站成一圈。沿着圈顺序数,每到第m个人就把他杀掉,这样一直进行下去,直到只剩下一个人,那个人就活下来。约瑟夫很聪明,他总会想办法站到一个合适的位置上,使得自己能够成为最后一个,从而活下来。例如:n = 6 , m = 5 时,被杀的顺序是5
7、, 4, 6, 2, 3 ,而 1 最终活下来。 给定n, m,求出最后留下的人的编号位置,1,2,3,4,5,6,1,2,3,4,6,1,2,3,6,1,2,3,1,3,思考题,假设有 k 个好人和 k个坏人。在圈上前 k 个是好人,后 k 个是坏蛋。现在让你来确定一个最小的 m 使得所有的坏蛋被杀掉后,才开始杀第1个好人。 输入 输入有若干个k。 最后1个值是0。假设 0 k 14。 输出 对应每个输入的k,输出相应的m。 样例输入 样例输出 3 4 0 5 30,约瑟夫环问题,int _tmain(int argc, _TCHAR* argv) int n,m,i=0,j=0; int aMAX; printf(Please input n (1) j=(i+m-1)%n; for (int k=j;kn;k+) ak=ak+1; i=j; n-; printf(Joseph should stand at No.%dn,a0+1); return 0; ,作业,问题分析 1) 求最小的m值可以用枚举的方法: 即依次看m=1,2,3,时,是否满足条件。 2) 枚举的过程就
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土地综合整治投标方案
- 沉井施工期质量检验与评定合同
- 婚姻解除后财产分割与经济补偿协议范本
- 防汛围栏井安装方案
- 拦污栅项目规划方案
- 乡村网络面试题及答案
- 内外踝骨折护理常规
- 天花玻璃安装方案
- 金融创新:厂房股权转让与融资租赁一体化合同
- 2026版《全品高考》选考复习方案生物0420 课时作业(十九) 细胞的分化、衰老、死亡 含答案
- TD/T 1056-2019 县级国土资源调查生产成本定额(正式版)
- 计算机三级《Linux应用与开发技术》考试题库大全(含真题、典型题等)
- E3软件基础教程
- QC七大手法与新QC七大手法
- MOOC 毒品预防与治理-中国刑事警察学院 中国大学慕课答案
- 四川省达州市2024年数学八年级下册期末联考试题含解析
- 外贸专业知识培训
- 快速康复外科理念ERAS与围手术期护理
- 大华- 能源 电动汽车充电站可视化监控系统 解决方案
- 教师招聘公共基础知识(教育学、心理学-教育法规)试题
- 培训网格员课件
评论
0/150
提交评论