《三种基本结构的程序设计.ppt》由会员分享,可在线阅读,更多相关《三种基本结构的程序设计.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、三种基本结构的程序设计 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计C C语句语句 和其它高级语言一样,和其它高级语言一样,C语言的语句用来向计算语言的语句用来向计算机系统发出机系统发出操作指令操作指令,一个语句经编译后产生若干条,一个语句经编译后产生若干条机器指令。一个实际的程序应当包含若干个语句。机器指令。一个实际的程序应当包含若干个语句。C语句都是用来完成一定操
2、作任务的,声明部分的内容语句都是用来完成一定操作任务的,声明部分的内容不应称为语句。不应称为语句。考虑:考虑:int a;和;和 int a=1;前者不是一个前者不是一个C语句,它不产生机器操作,而只是对语句,它不产生机器操作,而只是对变量定义。变量定义。后者是一个后者是一个C语句,为表达式语句语句,为表达式语句(a=1为赋值表达式为赋值表达式)2 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计C C语句分类语句分类表达式语句:表达式语句:由一个表达式加上一个分号构成一个由一个表达式加上一个分号构成一个语句,最典型的是赋值语句。如:语句,最典型的
3、是赋值语句。如:i+;k=k+2;m=n=j=3;a=1;x+y;也是,但无实际意义。;也是,但无实际意义。函数调用语句:函数调用语句:由一次函数调用加一个分号构成一由一次函数调用加一个分号构成一个语句,例如:个语句,例如:printf(“s=%dn”,s);空语句:空语句:只有一个分号的语句,什么也不做,有时只有一个分号的语句,什么也不做,有时用来做被转向点,或循环语句中的循环体。用来做被转向点,或循环语句中的循环体。复合语句:复合语句:可以用可以用 把一些语句括起来成为复合语把一些语句括起来成为复合语句,又称分程序。在语法上相当于一条语句。句,又称分程序。在语法上相当于一条语句。注注:后面
4、没有分号(;)后面没有分号(;)3 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计C C语句分类语句分类控制语句,完成一定的控制功能(控制语句,完成一定的控制功能(9 9种)种)if()else (条件语句)(条件语句)for()(循环语句)(循环语句)while()(循环语句)(循环语句)dowhile()(循环语句)(循环语句)continue (结束本次循环语句)(结束本次循环语句)break (中止执行(中止执行switch语句或循环语句)语句或循环语句)switch (多分支选择语句)(多分支选择语句)goto (无条件转向语句)(无条
5、件转向语句)return (从函数返回语句)(从函数返回语句)4 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计C C语句语句5 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计程序的三种基本结构程序的三种基本结构结构化程序:由三种基本结构(顺序、条件、循环)结构化程序:由三种基本结构(顺序、条件、循环)反复嵌套构成的程序。反复嵌套构成的程序。结构化程序设计结构化程序设计基本思想基本思想:(函数):(函数)“自顶向下、逐步求精、模块化自顶向下、逐步求精、模块化”6 第三章第三章三种基本结构的程序设计三
6、种基本结构的程序设计l程序基本结构及程序基本结构及C C程序语句分类程序语句分类l顺序结构程序设计顺序结构程序设计l选择结构程序设计选择结构程序设计l循环结构程序设计循环结构程序设计l典型例题精讲典型例题精讲 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计顺序结构程序设计顺序结构程序设计赋值语句:赋值语句:变量表达式;变量表达式;if(a=b)0)不能写成不能写成 if(a=b;)0)x=a;x=a;int a=b=c=10;正确?正确?是是错误错误的,应该写成:的,应该写成:int a,b,b;a=b=c=10;或者:或者:int a=10,b
7、=10,c=10;顺序结构顺序结构就是一个操作执行完成后就接着执行紧随其就是一个操作执行完成后就接着执行紧随其后的下一操作。后的下一操作。8与赋值表达式有何区别 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计顺序结构例:顺序结构例:输入三角形的三条边长,求其面积输入三角形的三条边长,求其面积#include#includevoid main()float a,b,c,p,s;printf(Input a,b,c=);scanf(%f,%f,%f,&a,&b,&c);p=1.0/2*(a+b+c);s=sqrt(p*(p-a)*(p-b)*(p-c
8、);printf(s=%6.2fn,s);9 面积公式:面积公式:其中其中注意:注意:sqrt()是求平方根的函数。是求平方根的函数。必须把头文件必须把头文件“math.h”包含到包含到程序中来。凡是在程序中用到数程序中来。凡是在程序中用到数学函数库中的函数,都应当包含学函数库中的函数,都应当包含math.h头文件。头文件。运行运行结结果:果:Input a,b,c=3,4,5 s=6.00 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计顺序结构例:顺序结构例:输入两个整数,交换其值。输入两个整数,交换其值。#includevoid main()
9、int a,b,t;printf(Input a,b=);scanf(%d,%d,&a,&b);printf(old data:a=%d,b=%dn,a,b);t=a;a=b;b=tprintf(new data:a=%d,b=%dn,a,b);10 运行运行结结果:果:Input a,b=5,10 old data:a=5,b=10new data:a=10,b=5如果是你,如何交换 第三章第三章三种基本结构的程序设计三种基本结构的程序设计l程序基本结构及程序基本结构及C C程序语句分类程序语句分类l顺序结构程序设计顺序结构程序设计l选择结构程序设计选择结构程序设计l循环结构程序设计循环结构
10、程序设计l典型例题精讲典型例题精讲 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计选择结构程序设计选择结构程序设计if语句语句12if语句语句是用来判定所给定的条件是否满足,根据判是用来判定所给定的条件是否满足,根据判定的结果决定执行给出的两种操作之一。定的结果决定执行给出的两种操作之一。lif(if(表达式表达式1)1)语句语句1 1 else if(else if(表达式表达式2)2)语句语句2 2 else if(else if(表达式表达式3)3)语句语句3 3 else if(else if(表达式表达式m)m)语句语句m m else
11、 else 语句语句n n表达式表达式语句语句假假(0)(0)真真(非非0)0)lif(if(表达式表达式)语句语句lif(if(表达式表达式)语句语句1 1 else else 语句语句2 2表达式表达式真真语句语句1语句语句2假假 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计if语句语句-例例1:输入两个整数,由大到小输出输入两个整数,由大到小输出#includevoid main()int a,b;printf(Input a,b=);scanf(%d,%d,&a,&b);if(ab)printf(%d,%dn,b,a);else pri
12、ntf(%d,%dn,a,b);13if(ab)printf(%d,%dn,b,a);if(a=b)printf(%d,%dn,b,a);int t=0;if(ab)t=a;a=b;b=t;printf(%d,%dn,a,b);运行结果:运行结果:Input a,b=5,10 10,5这部分还可以怎么写 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计if语句语句-例例2:判断由键盘输入的字符类型判断由键盘输入的字符类型#includevoid main()char c;printf(Input a character:);c=getchar();
13、if(c=0&c=A&c=a&c=z)printf(This is a small letter.n);elseprintf(This is another character.n);14注意考虑的完备注意考虑的完备 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计if 语句的嵌套语句的嵌套15#includemain()int x,y;scanf(“%d”,&x);if(x0)y=1;else y=0;printf(“x=%d,y=%dn”,x,y);Y=1Y=0Y=-1X=0X0YNNY在在if语句中又包含一个或多个语句中又包含一个或多个if语
14、句称为语句称为if语句的嵌套。语句的嵌套。一般形式如下一般形式如下:if ()if ()语句语句1 else 语句语句2else if()语句语句3 else 语句语句4内嵌内嵌if内嵌内嵌if配对关系配对关系:else总是与它总是与它上面的最近的上面的最近的if配对配对例:表示一个函数:例:表示一个函数:if(x0)y=1;else y=0;如何改 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计条件运算符:条件运算符:exp1 exp1?exp2 exp2 :exp3exp3若若if语句中,在表达式为语句中,在表达式为“真真”和和“假假”时,且
15、都只时,且都只执行一个赋值语句给同一个变量赋值时,可以用简单执行一个赋值语句给同一个变量赋值时,可以用简单的条件运算符来处理。的条件运算符来处理。条件运算符要求有条件运算符要求有3个操作对象,称三目运算符,它个操作对象,称三目运算符,它是是C语言中语言中唯一的一个三目唯一的一个三目运算符。运算符。条件表达式的条件表达式的一般形式一般形式为为:表达式表达式1?表达式表达式2 :表达式表达式3它的执行过程如右图它的执行过程如右图:16表达式表达式1条件表达式条件表达式取表达式取表达式2的值的值条件表达式条件表达式取表达式取表达式3的值的值真真假假ch若若为为大写大写转为转为小写,否小写,否则则不不
16、变变:ch=(ch=A&ch=Z)?(ch+32):ch;C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计switch 语句语句if语句本质上是两路分支的选择结构;要用于多路分支时,语句本质上是两路分支的选择结构;要用于多路分支时,if语句就得采用嵌套形式,这使程序的可读性降低。语句就得采用嵌套形式,这使程序的可读性降低。对于多路分支问题,对于多路分支问题,C语言提供了更加简练的语句:语言提供了更加简练的语句:多分多分支选择语句(支选择语句(switch语句)来实现多种情况的选择。语句)来实现多种情况的选择。一般形式:一般形式:switch(表达式
17、表达式)case 常量表达式常量表达式1:语句语句1 case 常量表达式常量表达式2:语句语句2 .case 常量表达式常量表达式n:语句语句n default:语句语句n+1 17switchswitch语句的执行过程是:语句的执行过程是:先计算表达式的值,并逐个与先计算表达式的值,并逐个与casecase后后面的常量表达式的值相比面的常量表达式的值相比l相等相等,执行相应常量表达式后的语,执行相应常量表达式后的语句,句,之后不再判断之后不再判断,顺序往下执行直,顺序往下执行直到遇到到遇到breakbreak语句(跳出语句(跳出switchswitch)或执)或执行到行到switchswi
18、tch语句结束;语句结束;l都不等都不等,执行,执行defaultdefault后面的语句后面的语句 (如果没有(如果没有defaultdefault部分,则此时部分,则此时switchswitch相当于一个空语句)。相当于一个空语句)。C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计switch 语句的注意事项语句的注意事项switchswitch后面括号内的表达式,可以为任何类型。后面括号内的表达式,可以为任何类型。一般一般多为易于判断相等的类型:整型、字符型或枚举型,多为易于判断相等的类型:整型、字符型或枚举型,单、双精度型的值由于计算误差而
19、难以进行相等比较单、双精度型的值由于计算误差而难以进行相等比较casecase后面常量表达式的值必须互不相同,否则会出现后面常量表达式的值必须互不相同,否则会出现出现互相矛盾的现象出现互相矛盾的现象多个多个casecase可以共享一组执行语句可以共享一组执行语句各个各个case和和default的出现次序不影响执行结果的出现次序不影响执行结果switchswitch结构可以嵌套,即在一个结构可以嵌套,即在一个switchswitch语句中可以嵌语句中可以嵌套另一个套另一个switchswitch语句,但要注意语句,但要注意breakbreak语句只能跳出当语句只能跳出当前层的前层的switch
20、switch语句语句18实践是检验真知的唯一途径实践是检验真知的唯一途径不需要死记,要动手去实验,不需要死记,要动手去实验,为什么这样规定?为什么这样规定?C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计switch 语句举例语句举例用数字用数字1717代表周一代表周一 周日,从键盘上输入一个数字,周日,从键盘上输入一个数字,输出对应的是工作日还是假日。输出对应的是工作日还是假日。19int a;printf(Input data:);scanf(%d,&a);/输输入整数入整数aswitch(a)case 1:case 2:case 3:case
21、 4:case 5:printf(Workday_n);break;case 6:case 7:printf(Holiday_n);break;default:printf(Input error!n);此程序要能执行还需要加什么可以交换吗default:.可以写到这里吗 第三章第三章三种基本结构的程序设计三种基本结构的程序设计l程序基本结构及程序基本结构及C C程序语句分类程序语句分类l顺序结构程序设计顺序结构程序设计l选择结构程序设计选择结构程序设计l循环结构程序设计循环结构程序设计l典型例题精讲典型例题精讲 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本
22、结构的程序设计循环结构循环结构循环结构循环结构是程序中一种很重要的结构。其特点是,在是程序中一种很重要的结构。其特点是,在给定条件成立时给定条件成立时,反复执行某程序段反复执行某程序段,直到条件不成,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序立为止。给定的条件称为循环条件,反复执行的程序段称为段称为循环体循环体。语言提供了多种循环语句,可以组。语言提供了多种循环语句,可以组成各种不同形式的循环结构。成各种不同形式的循环结构。C语言可实现循环的语句:语言可实现循环的语句:while 语句语句do while 语句语句for 语句语句用用goto 和和 if 构成循环构成循环21
23、C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计while语句语句while语句的语句的一般形式一般形式为:为:while(表达式表达式)语句语句 表达式:表达式:循环条件;循环条件;语句:语句:循环体。循环体。语义语义:计算表达式的值,为真时,:计算表达式的值,为真时,执行循环体语执行循环体语执行过程:执行过程:22例:例:语语句求句求1+2+3+.+100的的值值#include main()int i1,sum=0;while(i=100)sum=sum+i;i+;printf(%d,sum);这里这里语句语句要理解为一条要理解为一条语句(包
24、括复合语句)和语句(包括复合语句)和空语句空语句 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计while语句分析下面程序的运行结果语句分析下面程序的运行结果23#includevoid main()/程序程序1 int x=2;while(x-)printf(%dn,x);#includevoid main()/程序程序4 int x=0;while(x-)x-;printf(%dn,x);#includevoid main()/程序程序3 int x=2;while(x)printf(%dn,x);#includevoid main()/程序
25、程序2 int x=2;while(x-);printf(%dn,x);1 10 0-1-1(死循环)(死循环)2 22 2.-1-1 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计dowhile语句语句一般形式一般形式:do 语句语句 while(表达式表达式);执执行行过过程程:先先执执行行循循环环体体中中的的语语句句,然然后后再再判判断断表表达达式式是是否否为为真真,如如果果为为真真则则继继续续循循环环;如如果果为为假假,则则终终止循环。止循环。(do-while循环至少要执行一次循环语句)循环至少要执行一次循环语句)24这里这里语句语句要
26、理解为一条要理解为一条语句(包括复合语句和空语句(包括复合语句和空语句)语句)例:求自然例:求自然对对数数e的近似的近似值值。其中:。其中:int n=1,i=1;float e=1do n*=i;e+=1./n;i+;while(1./n=1e-7);C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计while语句和语句和dowhile语句的对比语句的对比例:输入一个自然数,求从该自然数到例:输入一个自然数,求从该自然数到10的和。的和。25main()int sum=0,i;scanf(“%d”,&i);while(i=10)sum=sum+i;
27、i+;printf(“sum=%d”,sum);main()int sum=0,i;scanf(“%d”,&i);do sum=sum+i;i+;while(i=10);printf(“sum=%d”,sum);运行运行结结果:果:输输入入1时时sum=55输输入入11时时:sum=0运行运行结结果:果:输输入入1时时sum=55输输入入11时时:sum=11 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计for语句语句在在C语言中,语言中,for语句使用最为灵活,语句使用最为灵活,一般形式一般形式:for(表达式表达式1;表达式表达式2;表达式
28、表达式3)语句语句执行过程(如右图)执行过程(如右图):1)求解表达式求解表达式1。2)求解表达式求解表达式2,其值,其值为真:为真:执行循环体语句,转到执行循环体语句,转到3););为假:为假:结束循环,转到结束循环,转到5)3)求解表达式求解表达式3。4)转到转到2)5)循环结束,执行循环结束,执行for后面的语句。后面的语句。26 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计for语句的说明语句的说明for循环中的循环中的“表达式表达式1(循环变量赋初值)(循环变量赋初值)”、“表达式表达式2(循环条件循环条件)”和和“表达式表达式3(循
29、环变量增量循环变量增量)”都是都是选择项选择项,即即可以缺省可以缺省,但但“;”不能缺省不能缺省。值得注意的是值得注意的是:表达式:表达式2省略相当于省略相当于while(1)表表达达式式1和和表表达达式式3可可以以是是一一个个简简单单表表达达式式也也可可以以是是逗号表达式:如:逗号表达式:如:for(i=0,j=100;i=100;i+,j-)k=i+j;表表达达式式2一一般般是是关关系系表表达达式式或或逻逻辑辑表表达达式式,但但也也可可以以是是数数值值表表达达式式或或字字符符表表达达式式,只只要要其其值值非非零零,就就执执行行循环体,如循环体,如 for(;(c=getchar()!=n;
30、)printf(“%c”,c);27有疑问吗?大家去试试!C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计用用for语句实现输出语句实现输出0到到10的数字的数字28int i;for(i=0;i=10;i+)printf(%d,i);int i=0;for(;i=10;i+)printf(%d,i);int i=0;for(;i=10;printf(%d,i),i+);int i=0;for(;i10)break;int i=0;for(;)if(i10)break;printf(%d,i);i+;这样写正确吗还有更多吗,请大家思考 C C语言与
31、程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计goto语句语句是一种是一种无条件转移无条件转移语句语句,使用格式使用格式为为:goto 标号标号;/在程序的某处有:在程序的某处有:标号:标号:语句语句其中其中标号标号是一个有效的是一个有效的标识符标识符,这个标识符加上一个这个标识符加上一个“:”一起出现在函数内某处一起出现在函数内某处,执行执行goto语句后语句后,程序将程序将跳转到该标号处并执行其后的语句。跳转到该标号处并执行其后的语句。l标号必须与标号必须与goto语句处于语句处于同一个函数同一个函数中中,但可以不在但可以不在一个循环层中。一个循环层中。
32、l通常通常goto语句与语句与if条件语句连用条件语句连用,当满足某一条件时当满足某一条件时,程序跳到标号处运行。程序跳到标号处运行。lgoto语句通常不用语句通常不用,主要因为它将使程序层次不清主要因为它将使程序层次不清,且且不易读不易读,但在但在多层嵌套退出多层嵌套退出时时,用用goto语句则比较合理语句则比较合理29 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计用用goto构成循环:求构成循环:求1+2+.+100的值的值30#include main()int i,sum=0;i=1;loop:if(i=100)sum+=i;i+;go
33、to loop;;printf(%d,sum);#include main()int i,sum=0;i=1;loop:sum+=i;i+;if(i100)goto loop;;printf(%d,sum);C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计break语句和语句和continue语句语句break语句语句功能功能:在循环语句和:在循环语句和switch语句中语句中,终止并跳出循环体终止并跳出循环体说明说明:只能终止并跳出最近一层的结构只能终止并跳出最近一层的结构只能用于循环语句和只能用于循环语句和switch语句语句continue语
34、句语句功能:功能:结束结束本次本次循环,跳过循环体中尚未执行的语句,循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断进行下一次是否执行循环体的判断说明:说明:仅用于循环语句中仅用于循环语句中31 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计程序分析:程序分析:32#include/1void main()int i,x=0;for(i=0;i=10;i+)x+;break;x+=10;printf(x=%dn,x);#include/3void main()int i,x=0;for(i=0;i=10;i+)x+;if(i=5)
35、goto L1;x=x+10;L1:printf(x=%dn,x);#include/2void main()int i,x=0;for(i=0;i=10;i+)x+;continue;x+=10;printf(x=%dn,x);x=1x=1x=11x=11x=56x=56 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计 程序举例:程序举例:一张厚一张厚0.5mm的纸对折多少次可以达的纸对折多少次可以达到珠峰高度(到珠峰高度(8848m)?)?33#includevoid main()int n=0;float h=0.5;while(1)n+;
36、h=2*h;if(h8848000)continue;printf(n=%dn,n);break;for(;h=8848000)break;printf(n=%dn,n);for(;h=h*2,n+)if(h8848000)continue;goto L1;L1:printf(n=%dn,n);循环部分还能怎样改动 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计循环的嵌套循环的嵌套 一个循环体内又包含另一个完整的循环结构时,就称一个循环体内又包含另一个完整的循环结构时,就称为为循环的嵌套循环的嵌套l内循环语句就是一条语句!内循环语句就是一条语句!
37、比如,以下三种嵌套:比如,以下三种嵌套:34(1)while()while().(3)for(;)do while();while().外循环外循环内循环内循环内循环内循环(2)while()do while();.C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计举例:输出下面的九九乘法表举例:输出下面的九九乘法表1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9 1*9=9 2*9=18 9*9=8135#includevoid main()int i,j;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(
38、%3d*%d=%2d,j,i,i*j);printf(n);#includevoid main()int i=1,j;while(i=9)j=1;while(j=i)printf(%3d*%d=%2d,j,i,i*j);j+;printf(n);i+;C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计例:循环变量的变化例:循环变量的变化36main()int i,j,k;printf(“i j kn”);printf(“-n”);for(i=0;i2;i+)for(j=0;j2;j+)for(k=0;ky);(2)if(xy)m=x (3)if(xy
39、);else m=y;else m=y;else m=y;(4)if(x=1)m=x;(5)if(xy)else m=y;else m=y;40 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计例例2:修改程序:修改程序计算计算 1+1/1*2+1/2*3+1/n*(n+1)的值,最后一项值小于的值,最后一项值小于0.00141#includevoid main()int m=n=1;float s=1;while(1/m=.001是是n!?:m=n*(n-1)整除整除?:1./m格式错误:格式错误:f C C语言与程序设计语言与程序设计 第三章第
40、三章 三种基本结构的程序设计三种基本结构的程序设计例例3:求解一元二次议程:求解一元二次议程:axax2 2+bx+c=0+bx+c=0(教材(教材P96P96)另外一种分法:另外一种分法:a=0b=0c=0:方程无穷解;:方程无穷解;c0:方程无解;:方程无解;b0:有一个解有一个解-c/b;a0b2-4ac=0,方程有两个相等的实数根;方程有两个相等的实数根;b2-4ac0,方程有两个不等的实数根;方程有两个不等的实数根;b2-4ac0,方程有两个复数根;方程有两个复数根;42按这个方案或者自己的方按这个方案或者自己的方案修改课本上的程序案修改课本上的程序对书上所分的各种情况有没有异议对书
41、上所分的各种情况有没有异议 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计例例4:求:求Fibonacci数列前数列前20个数个数#includevoid main()int i,f1,f2;f1=1;f2=1;for(i=1;i=10;i+)printf(%10d%10d,f1,f2);if(i%2=0)printf(n);f1=f1+f2;f2=f2+f1;43运行结果:运行结果:1 1 2 3 1 1 2 3 5 8 13 21 5 8 13 21 34 55 89 144 34 55 89 144 233 377 610 987 233
42、377 610 987 1597 2584 4181 6765 1597 2584 4181 6765 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计例例5:百钱买百鸡问题:百钱买百鸡问题main()int cock,hen,chicken;cock=1;printf(“cock hen chickenn”);while(cock=19)hen=1;while(hen=33)chicken=100-cock-hen;if(5*cock+3*hen+chicken/3.0=100)printf(“%5d%5d%5dn”,cock,hen,chick
43、en);hen+;cock+;44百钱买百鸡问题分析:百钱买百鸡问题分析:cockcock公鸡取值范围为:公鸡取值范围为:119119henhen母鸡取值范围为:母鸡取值范围为:133133chickenchicken小鸡取值范围为:小鸡取值范围为:100-cock-100-cock-henhen C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计例例6:判断:判断m是否素数是否素数#include#include main()int m,i,k;scanf(%d,&m);k=sqrt(m);for(i=2;i=k+1)printf(%d is a
44、prime numbern,m);else printf(%d is not a prime numbern,m);45素数素数(质数质数):大于大于1,并且除,并且除1和自身之外不能被其他自然数整除和自身之外不能被其他自然数整除的整数的整数:2,3,5,7.为什么只要验证到平方根处为什么只要验证到平方根处 C C语言与程序设计语言与程序设计 第三章第三章 三种基本结构的程序设计三种基本结构的程序设计练习:练习:求求100以内的素数以内的素数因式分解因式分解求求1000以内的完美数(等于除自身外的因子之和的以内的完美数(等于除自身外的因子之和的数),如数),如61+2+3用二分法求方程用二分法求方程2x3-4x2+3x-6=0的一个近似根(迭的一个近似根(迭代前后两个数的差距小于代前后两个数的差距小于1e-6)输出右边的图形:输出右边的图形:46 第三章第三章三种基本结构的程序设计三种基本结构的程序设计l程序基本结构及程序基本结构及C C程序语句分类程序语句分类l顺序结构程序设计顺序结构程序设计l选择结构程序设计选择结构程序设计l循环结构程序设计循环结构程序设计l典型例题精讲典型例题精讲本章到此结束,本章到此结束,大家有什么大家有什么问题和建议?问题和建议?