第3章_基本程序设计-2(周)_第1页
第3章_基本程序设计-2(周)_第2页
第3章_基本程序设计-2(周)_第3页
第3章_基本程序设计-2(周)_第4页
第3章_基本程序设计-2(周)_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,第三章,基本程序设计(2),#includevoidmain()intx,i;printf(请输入一个整数,若小于3则重输:);doscanf(“%d”,读程序,假定x=24,按程序执行过程,手工演算一遍:ixx%i动作2240执行内循环,输出2,x=122120执行内循环,输出2,x=6(x=x/i)260执行内循环,输出2,x=3(x=x/i)231退出内循环,i=i+1330执行内循环,输出3,x=1311退出内循环,i=4,ix,退出外循环到此,程序的输出结果是“2223”,读者可以进一步取x的不同值进行手工操作,例如,x=50时,输出是“255”。,因式分解,【例3-11】从键盘上输入的一个大于等于3的整数,将其分解为质因子的乘积。例如:输入:28,输出:227输入:37,输出:37,【例3-16】编程完成因式分解,对键盘输入的任意整数,输出因式分解的形式,例如:输入:56,输出:56=(23)(7)输入:-450,输出:-450=-(2)(32)(52)。,学会读程序,自己看懂程序,【例3-16】,#include#includevoidnum_decomp(intn);main()intn;printf(“请输入n=”);scanf(“%d”,编程完成因式分解,对键盘输入的任意整数,输出因式分解的形式,例如:输入:56,输出:56=(23)(7),voidnum_decomp(intn)inti,p;printf(%d=,n);if(n1)printf(%d%d),i,p);if(n!=1)printf(%d),n);,【例3-16】,素数判定,定理:如果a是合数,则a必有小于等于的真因子。证:如果a是合数,则a可表示成a=bc,其中1()2=a,矛盾。,素数:整数p1,只有和p自身能整除p,p为素数如:2,3,5,7合数:大于1且不是素数的数如:4,6,8,9,/*功能:判定x是否是素数,x2返回值:返回1表示是素数,返回0则不是素数*/intis_prime(intx)intm;if(x=2)return1;if(x%2=0)return0;/*偶数不是素数*/m=sqrt(x);for(i=3;i=m;i+)if(x%i=0)/*x能被i整除,x不是素数*/return0;return1;/*循环结束还没有返回,说明x是素数*/,素数判定算法,【例3-17】编一程序打印出2至99之间的所有素数。,分析:本例是上面素数判定算法的一个简单应用#includeintis_prime(intx);voidmain()for(i=2;i=3),例:求Fibonacci数列前40个数。,#includemain()longintf1=1,f2=1;inti;for(i=1;i=20;i+)printf(%12ld%12ld,f1,f2);f1=f1+f2;f2=f2+f1;if(i%2=0)printf(n);,分析下面的程序(VC环境),#includevoidmain()inti,k,fn,fn_1=1,fn_2=1;k=2;printf(%12d%12d,fn_1,fn_2);for(i=3;i=3),将各数字分开,并按其反序输出。分析:问题的关键是如何将一个数字的各位分开?如1234,将其分解成1,2,3,4。初值:x0=1234step1:r1=x0%10=4x1=x0/10=123step2:r2=x1%10=3x2=x1/10=12step3:r3=x2%10=2x3=x2/10=1step4:r4=x3%10=1x4=x3/10=0,程序:#includevoidmain()intx,r;scanf(%d,递推公式:,运行结果输入一个整数:5353443535,例:打印出所有的“水仙花数”(一个3位数,其各位数字的立方和等于该数本身。153=13+53+33),#includestdio.hvoidmain()inti,j,k,n;for(n=100;n1000;n+)i=n/100;/*百位数*/j=n/10-i*10;/*十位数*/k=n%10;/*个位数*/if(n=i*i*i+j*j*j+k*k*k)printf(%dn,n);运行结果:153370371407,【例3-12】编一程序求出满足不等式的最小n值。,分析:(1)此题不等式左边和式中的数据项(求和项)个数是未知的,也正是需要求出的的n。因此用while循环比较方便。(2)对于和式中的每个数据项(求和项),i=1,2,.n,可采用循环累加的方法来计算出不等式的和。(3)设循环变量为i,它应从1开始取值,每次增加1,直到不等式的值不小于5为止,此时的i值就是所求的n。设累加和用变量s表示,在循环体内应把1/i的值累加到s上。,采用while循环编写出程序如下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论