资源描述:
《C语言课件3-三种基本结构程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章三种基本结构的程序设计3.1顺序结构3.2分支(条件)结构3.3循环结构退出2021/8/1223.1顺序结构顺序结构程序是按书写顺序执行的语句构成的程序段。语句1语句2返回2021/8/1233.2分支结构(条件结构)3.2.1基本if语句(单分支结构)3.2.2if-else语句(双分支结构)3.2.3if嵌套语句(分支嵌套的一般形式)3.2.4if-else-if语句(分支嵌套的特殊形式)3.2.5switch-case语句(开关分支结构)3.2.6goto语句(无条件分支结构)返回2021/8/124if(表达式)语句;注:表达式可以是任意表达式,为“非0”则执行语句。
2、语句表达式?0非0返回3.2.1基本if语句(单分支结构)2021/8/125if(表达式)语句1;else语句2;语句1语句2表达式?非003.2.2if-else语句(双分支结构)2021/8/126[例3.1]输入一个整数,判断奇偶。#includevoidmain(){intn;printf("Inputaninteger");scanf("%d",&n);if(n%2==0)printf("Theintegeriseven");elseprintf("Theintegerisodd");}返回2021/8/127if后和else后的语句可再包含i
3、f语句。3.2.3if嵌套语句(分支嵌套的一般形式)例:if(n>0)if(a>b)c=a;elsec=b;例’:if(n>0){if(a>b)c=a;}elsec=b;注:else总是与前面最近的并且没有与其他else匹配的if相匹配。2021/8/128[例3.2]求一个点所在的象限。#includevoidmain(){floatx,y;printf("Inputthecoordinateofapoint.");printf("x=");scanf("%f",&x);printf("y=");scanf("%f",&y);if(x>0)if(y>0)prin
4、tf("Thepointisin1stquadrant.");elseprintf("Thepointisin4thquadrant.");elseif(y>0)printf("Thepointisin2ndquadrant.");elseprintf("Thepointisin3rdquadrant.");}返回2021/8/129if(表达式1)语句1;elseif(表达式2)语句2;……elseif(表达式n)语句n;else语句n+1;表达式1?语句2假(0)真(非0)语句1表达式2?假(0)表达式n?假(0)语句n+1语句n真(非0)真(非0)3.2.4if-
5、else-if语句(分支嵌套的特殊形式)2021/8/1210[例3.3]求解符号函数。#includevoidmain(){intx,sign;printf("Pleaseinputanumber");scanf("%d",&x);if(x>0)sign=1;elseif(x==0)sign=0;elsesign=-1;printf("Thesignis%d",sign);}2021/8/1211[例3.4]设计求ax2+bx+c=0的一元二次方程解的程序。#include#includevoidmain(){floata,
6、b,c,d,x1,x2,p,q;printf("a,b,c=?");scanf("%f%f%f",&a,&b,&c);printf("Theequation");if(fabs(a)<1e-6)printf("isnotquadratic.");else{d=b*b-4*a*c;if(fabs(d)<1e-6)printf("hastwoequalroots:%8.4f",-b/(2*a));elseif(d>=1e-6){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("hasdistinctrealroots:%8.4f
7、and%8.4f",x1,x2);}else{p=-b/(2*a);q=sqrt(-d)/(2*a);printf("hascomplexroots:");printf("%8.4f+%8.4fit",p,q);printf("%8.4f-%8.4fi",p,q);}}}返回输入a,b,ca==0?非二次方程d=b2-4acd==0?d>0?不相等实根不相等虚根相等实根YNYNYN2021/8/1212switch(表达式){ca