版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、图图3.1 Niklaus Wirth 图图3.2 常用的流程图标准化符号常用的流程图标准化符号 用流程图描述的三种流程基本结构用流程图描述的三种流程基本结构 (a)一个三数中取大的算法)一个三数中取大的算法 图图3.5 无限制地使用流线形成无限制地使用流线形成BS流程结构流程结构 (c)当型重复结构)当型重复结构(a)顺序结构)顺序结构 (b)选择结构)选择结构图图3.6 用用N-S图描述三种基本流程结构图描述三种基本流程结构 (a)采用选择结构)采用选择结构 (b)采用当型重复结构)采用当型重复结构 输入输入a,b,c;if(a=b)max=a;else max=b;if(max=c) 输
2、出输出max;else 输出输出c;初始化:初始化:max=0,i=1;当(当(i=max) max=n;)输出输出max;初始化:初始化:max=0,i=1; ( 输入输入n; i+; if(n=max) max=n;) 直到(直到(i3)输出输出max;s1: 输入三数输入三数a,b,c;s2: 从从a,b,c中找出大数赋给中找出大数赋给max;s3: 输出输出max。s1: 调用调用scanf()函数;函数;s2: 设计一个函数设计一个函数max3 (a,b,c);s3: 调用调用printf()函数。函数。s2.1: if(xy) m=x; else m=y;s2.2: if(mz)
3、m=m; else m=z;s2.3: return (m); if (a & b) c=1;else c=0;if (a | b) c=1;else c=0;if (!a) c=1;else c=0;Enter real number a please: -98.7654 abstr (-98.765400)=98.765400double abstr (double x)if (x0.0)x=-x;return (x);If- else if结构的结构的N-S图描述图描述程程序序如如下下switch(表达式表达式)case 常量表达式常量表达式1:语句序列语句序列1case 常量表
4、达式常量表达式2:语句序列语句序列2case 常量表达式常量表达式n:语句序列语句序列ndefault:语句序列语句序列n+1switch(表达式表达式)case 常量表达式常量表达式1:语句序列语句序列1break;case 常量表达式常量表达式2:语句序列语句序列2break;case 常量表达式常量表达式n:语句序列语句序列nbreak;default:语句序列语句序列n+1break;/* ex030801.c */* 测试字符类型测试字符类型 */int test_char (int c)switch (c)case 0:case 1:case 2:case 3:case 4:cas
5、e 5:case 6:case 7:case 8:case 9:printf (its a digit n);break;case :case n:case t:printf (it s a whiten);break;default:printf (it s a charn);break; case 3+4:但不允许写为:但不允许写为: Int x=3,y=4; switch (z) case x+y: /* 文件名:文件名:ex030901.c */* 联想猜词游戏联想猜词游戏 */include stdio.hint main(void)int c;c=getchar(); getcha
6、r(); /* 为接收一个字符,再接收为接收一个字符,再接收一个分隔符一个分隔符换行或空格换行或空格*/switch (c)case a:case A:printf (Ada, Algol?n);c=getchar(); getchar();switch (c)case d:case D:printf (Ada n);break;case l:case L:printf (Algol n);break;default:printf (input errorn);break;break;case b:case B:printf (Basic, BCDL?n);c=getchar(); getch
7、ar();switch (c)case a:case A:printf (Basicn);break;case c:case C:printf (BCDLn);break;default:printf (I am sorry!n);break;break;case c:case C:printf (C,Cobol,C+,C#? n);c=getchar(); getchar();switch (c)case c:case C:printf (Cn);break;case o:case O:printf (Coboln);break;case +:printf (C+n);break;case
8、#:printf (C#n);break;default:printf (I am sorry!n);break;break;default:printf (I am sorry!n);break;return 0;/* 两数中取大两数中取大 */* 文件名:文件名:ex031101.c */#include int main(void)float a,b, max;printf (input 2 reals please:);scanf (%f%f,&a,&b);max=ab?a b;printf (The max is %fn, max);return 0;/* 两数中取大
9、两数中取大 */* 文件名:文件名:ex031101.c */#include int main(void)float a,b, max;printf (input 2 reals please:);scanf (%f%f,&a,&b);max=ab?a b;printf (The max is %fn, max);return 0;#include int main(void)float a,b;printf (input 2 relas please:);scanf (%f%f,&a,&b);printf (The max is %fn,ab?a:b);re
10、turn 0;fib=fib1+fib2;fib1=fib2; /* 为下一次迭代作准备为下一次迭代作准备*/fib2= fib;iixx lim*图图3.20 用二分法求一元方程的根用二分法求一元方程的根图图3.24 采用计数器的采用计数器的10数中取大算法数中取大算法 cocks: 019中的整数中的整数(因为每只鸡翁因为每只鸡翁5钱钱)hens: 033中的整数中的整数(因为每只鸡母因为每只鸡母3钱钱)chicks: 0100中的整数中的整数(因为三只因为三只1钱钱)s1: cocks=0; /*赋初值赋初值*/s2: 当当(cocks=19)s2.1: 找满足题意的找满足题意的hens
11、, chicks;s2.2: cocks+;S3: 输出一组输出一组cocks, hens 和和 chickswhile是一种是一种循环结构循环结构,其形式如下:,其形式如下: while (表达式表达式) 循环体语句循环体语句/* 文件名:文件名:ex031702.c */* 计算人口增长计算人口增长 */#include int main(void)double m=13;int i=1;while(i=10) m=m*(1+0.002); printf(“Population after %d years is:%fn”,i,m); i+;return 0;/* 文件名:文件名:ex03
12、1801.c * 计算计算Fibonacci数数 */#include int main(void) int fib1=1,fib2=1,fib,i=3; while(i=12) fib=fib1+fib2; fib1=fib2; fib2=fib; i+; printf(“The Fibonacci number after 1 year is:%dn”,fib); return 0;例例3.19 用牛顿迭代法计算一个正实数用牛顿迭代法计算一个正实数a的平方根,的平方根,精确到精确到E0=10-5。例例3.19 用牛顿迭代法计算一个正实数用牛顿迭代法计算一个正实数a的平方根,的平方根,精确到
13、精确到E0=10-5。/* 文件名:文件名:ex031901.c */* 计算平方根计算平方根 */#include #define E0 0.00005double sq_root (double a)/* 计算计算a的平方根的平方根 */double x;x=a;x=(x+a/x)*0.5;while (fabs (x*x-a)=E0) x=(x+a/x)*0.5; return (x);#include int main(void)double f=2.0; printf( The root of %f is %fn,f,sq_root(f); return 0; 用下面的主函数进行测试
14、用下面的主函数进行测试:测试结果如下:测试结果如下:The root of 2.000000 is 1.414216/* 文件名:文件名:ex032001.c * 多数中取大多数中取大 */#include #define FLAG -32768int main(void) int max,n; printf(“Input a number:”); scanf(“%d”,&n); max=n; while(n!=FLAG) printf(“Input next number:”); scanf(“%d”,&n); if(nmax) max=n;printf(“The max i
15、s:%dn”,max);return 0;/* 文件名:文件名:ex032002.c * 多数中取大多数中取大 */#include #define FLAG -32768int main(void) int max,n; do printf(“Input a number:”); scanf(“%d”,&n); if(nmax) max=n; while(n!=FLAG);printf(“The max is:%dn”,max);return 0;/* 文件名:文件名:ex031902.c */* 计算平方根计算平方根 */#include #define E0 0.00005dou
16、ble sqroot(double a)/* 计算计算a的平方根的平方根 */ double x; x=a;do x=(x+a/x)*0.5;while (fabs (x*x-a)=E0);return (x);也可写为:也可写为: #include #define E0 0.00005double sq_root (double a)/* 计算计算a的平方根的平方根 */ double x; for (x=a, x=(x+a/x)*0.5;fabs (x*x-a)=E0;x=(x+a/x)*0.5); return (x);/* 文件名:文件名:ex032202.c * 百钱买百鸡问题百钱买
17、百鸡问题 */#include int main(void) int cocks; printf(%8s%8s%8sn,cocks,hens,chicks); for(cocks=0;cocks=19; cocks+) int hens; for(hens=0; hens=33; hens+) int chicks; chicks=100-cocks-hens; if(5*cocks+3*hens+chicks/3.0=100)printf(%8d%8d%8dn, cocks,hens,chicks); return 0; for(i=1; i=9;i+)printf (%4d,i);for(
18、i=1; i=36; i+)printf (%c, -);for(i=101; i=136; i+)printf (%c, -);for (i=36; i=1; i-)printf (%c, -);for (i=10; i=360; i+=10)printf (%c, -);for(i=1; i=9;i+)打印第打印第i行行for(j=1, j=9; j+)打印第打印第j个数个数printf (%4d, i*j);printf (n);/* 文件名:文件名:ex032301.c * 打印九九乘法表打印九九乘法表 */#include int main(void) int i,j; for (i
19、=1; i=9; i+) printf(%4d,i); printf (n); for (i=1; i=36;i+) printf (%c,-); printf (n); for (i=1;i=9; i+) for (j=1; j=9;j+) printf (%4d,i*j); printf (n); return 0;printf (j=9)?%4dn:%4d, i*j);baI=( ) ( )f x d xba( ) ( )( )( )f x d xF bF a图图3.29 用梯形法求定积分用梯形法求定积分11)()()(2)() 1() 1()2()()()(2niihafhbfafhb
20、fhnafhnafhafhafhafafhs) 1()(20hiafihafhSni) 1()(2hiafihafhSi/* 文件名:文件名:ex032401.c * 用梯形法求积分用梯形法求积分 */#include double f(double x);int main(void) /*求定积分求定积分*/ float a,b; double s,h; int n,i; printf (input integral area a & b:); /* 输入一个区间输入一个区间 */ scanf (%f, %f,&a,&b); printf (input n:); /*
21、 输入迭代次数输入迭代次数 */ scanf (%d,&n); h=(b-a)/n; s=0.5*h*(f(a)+f(b); for(i=1;i=n-1; i+) s=s+f(a+i*h)*h; printf (nthe value is:%1fn, s); return 0;#include double f(double x) /*被积函数被积函数*/return (sqrt (4.0-x*x);input integral area a & b:0, 2 input n: 1000 the value is: 3.141555input integral area a & b: 0, 2 input n: 10000 the valu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 管路发泡施工方案(3篇)
- 线下防水施工方案(3篇)
- 美在广西活动策划方案(3篇)
- 钢板加工施工方案(3篇)
- 门店生意活动方案策划(3篇)
- 隧道施工方案计划(3篇)
- 顶楼装修施工方案(3篇)
- 马术引流活动策划方案(3篇)
- 龙骨框架施工方案(3篇)
- 政府机构项目经理面试问题详解
- 货车运用维修-站修作业场(铁道车辆管理)
- 家用小型心电监测系统
- 低压配电系统
- 培训供应链审核for baiyun施耐德电气供应商质量管理
- WTO海关估价协议中文版
- GB/T 17626.10-2017电磁兼容试验和测量技术阻尼振荡磁场抗扰度试验
- 煤矿顶板事故现场处置方案
- 体育教学“一体化”模式的探究课件
- 《中兽医学说》教学课件
- 各家针灸学说第一章针灸学派的学术渊源与理论基础课件
- 《跳呀快来跳舞》教案(市赛)
评论
0/150
提交评论