[理学]C语言程序设计循环控制.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]C语言程序设计循环控制

例:搬砖问题:36块砖,36人搬。男搬4,女搬3,童子2搬1。问男、女、童各几何? 解:man+woman+child=36 4* man+3*woman+child/2=36 main() //见c3_1_10.cpp { int man,woman,child; man=0; while (man=9) { woman=0; while (woman=12) { child=36-woman-man; If (4*man+3*woman+child/2.0==36.0) printf(“men=%d,women=%d,children=%d\n”); } woman++; } man++; } } 例 打印九九乘法表 算法: 打印表头; for (i=1,i=9;i++) { 打印i; for (j=1,j=9;j++) 打印i*j; 输出换行; }//见c3_1_14.cpp 例6.6 利用 求π 解:令ak=(-1)k-1/(2k-1),则以上求和到| ak |eps为止(eps=10-7) #define eps 1.0e-7 //tc3_10.c main() { int s; float n,t,pi; t=1.0;pi=0;n=1.0;s=1; while(fabs(t)=eps) { pi+=t; n+=2.0; s=-s; t=s/n; } pi=pi*4; printf(\n pi=%lf\n“pi); } 例 求正整数u,v的最大公约数 //见c3_1_12.cpp main() { int x,y,u,v,r; printf(input u,v:); scanf(%d,%d,x,y); u=x;v=y; if ((u=0)||(v=0)) printf(\n数据输入错!\n); else { while (v) { r=u%v; u=v; v=r; } printf(\ngcd(%d,%d)=%d\n,x,y,u); } } 例 求 sinx-x/2=0 在[π/2, π]中的根。 //见c3_1_11.cpp #define eps 0.0000001 #define pai 3.1415926 #define f(x) sin(x)-x/2.0 void main(void) //二分法求方程的根 {double x0, x1,f0,f1,f2,x2; int i=0; x0=pai/2.0; x1=pai; f0=f(x0);f1=f(x1); while (fabs(x0-x1)=eps) {i++; x2=(x0+x1)/2.0; f2=f(x2); if (fabs(f2)eps) x0=x1=x2; else if (f2*f00) {x1=x2;f1=f2; } else {x0=x2;f0=f2;} } printf(i=%d,root=%lf\n,i,x2); } 例6.9 求100~200之间的素数 #define N1 100 #define N2 200 main() //见c3_1_13.cpp { int p,k,c=0; if(N1%2)p=N1; //保证p从奇数开始 else p=N1+1; for(; p=N2;p+=2) { for(k=2;(k*k=p) (p%k!=0); k++); if(k*kp) //p为素数 { printf( %d,,p); c++; //素数个数计数 if (c%10==0) //每10个换行 { printf(\n); c=0; } } } } 例、求定积分的梯形法。 令 x0=a xi=a+i*h, i=1,..n; h=(b-a)/n; ti=(f(a+(i-1)*h)+f(a+i*h))*h/2; 例 求 main() //tc3_18.c { float x,s,t; int i,n; scanf(“%f,%d”,x,n); for (t=x,s=0.0,i=1;i=n;i++) { s+=t; t

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档