003-流程控制与基本算法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第四章顺序结构的程序设计1一、数据输出C中没有专门的输入输出语句,输入输出操作是通过输入、输出函数实现两个基本的输出函数:字符输出函数putchar格式输出函数printf24.3数据输出一.字符输出函数格式:putchar(字符变量)功能:在标准输出设备上输出指定字符说明:一次调用只能输出一个字符加上分号成为字符输出语句使用时在程序开头用预编译指令#includestdio.h34.3数据输出二.格式输出函数格式:printf(格式字符串,输出项表)功能:从标准输出设备上,按指定的格式输出对应的输出项%d:按十进制整数形式输出%u:按无符号十进制整数形式输出%o:按无符号八进制整数形式输出%x:按无符号十六进制整数形式输出格式控制串printf(“Outputx=%d\n”,x);44.3数据输出%f:输出实数(6位小数)%e:按指数形式输出实数%c:输出单个字符%s:输出一个字符串%ld:按十进制整数形式输出长整型格式控制串注意区分:•输出位数•浮点数实际能表达的有效数字54.3数据输出对格式的修饰%md输出整型数据至少占m个字符位,右对齐%-md输出整型数据至少占m个字符位,左对齐%m.nf输出实型数据至少占m个字符位,小数点后留n位,(对字符串,输出前n个字符),右对齐%-m.nf同上,左对齐修饰符与数据实际宽度不符时如何处理?64.3数据输出例:inta=1234;printf(“%5d”,a);printf(“%3d”,a);floatb=123.45;printf(“%-8.3f”,b);printf(“%6.3f”,b)按实际输出12341234左补空格123.450123.45074.3数据输出几点说明:1.格式控制串的控制符号与变量表要一一对应,即:类型相同,个数相等2.格式控制符号之外的符号均照原样显示3.若需显示百分号,格式为:%%4.如果实际数据所占字符位大于指定的域宽,按实际输出,但小数不会妥协8二、数据输入一.字符输入函数功能:从标准输入设备上读一个字符getchar()#includestdio.h94.4数据输入二.格式输入函数格式:scanf(格式字符串,输入项地址表)功能:按照格式要求,从终端上把数据送到地址参数所指定的内存空间中格式控制符号同printf要求:类型相同,个数相等inta,b;scanf(“%d,%d”,&a,&b);&b&a输入:5,858104.4数据输入练习inta,b;doublec;scanf(“%f%f%f”,&a,&b,&c);scanf(“%d%d%lf”,&a,&b,&c);114.4数据输入输入时不允许规定精度,可以指定域宽inta;scanf(“%3d”,&a);floatx;scanf(“%8.2f”,&x);124.4数据输入遇下列3种情况结束当前数据的输入:1.换行,Tab,空格2.宽度结束3.非法输入inta,b;scanf(“%d%d”,&a,&b);输入:1234a为12,b为34intk;scanf(“%3d”,&k);输入:12345k为123还可以输入:1234134.4数据输入例:main(){inta;floatb,c;scanf(“%2d%3f%4f”,&a,&b,&c);printf(“a=%d,b=%f,c=%f\n”,a,b,c);}输入:12345678987654321输出?a=12,b=345.000000,c=6789.00000014注意:scanf、printf设置的格式要与变量类型一致;输入、输出longint要用%ld;输入double要用%lf或%le;(输出可以用%f)可以用%d输出char型,用%c输出int型;但输入,只能%c对char,%d对int;选择结构的程序设计16第5章选择结构的程序设计用if语句设计选择结构程序用switch语句设计多分支结构程序应用举例175.1用if语句设计选择结构程序一.if语句的两种基本形式1.单选择if语句功能:判断条件为真时执行语句,否则跳过语句语句格式:if(条件){语句组;}条件可以是关系表达式或逻辑表达式例:if(ab)x=a;语句N条件Y单选择185.1用if语句设计选择结构程序2.双选择if语句语句格式:if(条件){语句组1;}else{语句组2;}功能:判断条件为真时执行语句组1,否则执行语句组2条件语句1语句2YN双选择19例:求a和b两数中较大的一个main(){inta,b,max;printf(Inputaandb=);scanf(“%d%d”,&a,&b);/*输入a和b*/if(ab)/*如果ab,则将a赋给max*/max=a;else/*否则,将b赋给max*/max=b;printf(Themaxofaandb:%d\n,max);}ab?max=bmax=aYN20例:求a和b两数中较大的一个只用单选择main(){inta,b,max;printf(Inputaandb=);scanf(%d%d,&a,&b);max=a;if(maxb)max=b;printf(Themaxofaandb:%d\n,max);}maxbmax=bYN215.1用if语句设计选择结构程序if(ab)x=a;elsex=b;必须有分号复合语句的表示:if(ab){x=a;printf(“a=%d\n”,x);}else{x=b;printf(“b=%d\n”,x);}不能有分号if或else只能管辖“一条”语句!复合语句被视为“一条”语句!225.1用if语句设计选择结构程序有关if语句的说明条件后面不加分号语句之后有分号else不是语句,不能单独使用当if后有多个执行语句时,必须用{}将多个语句括起来,构成一个复合语句,而{}之外不必有分号。;是一条语句{}if();if(){;;}23是一条语句(如果没有else)是一条语句(如果没有else)是一条语句if(){;;}else{;;}24是一条语句else{;;}不是语句255.1用if语句设计选择结构程序例:从键盘输入被除数a和除数b,求商intmain(){inta,b;printf(Entertwonumbers:);scanf(%d%d,&a,&b);if(b!=0)printf(%d\n,a/b);elseprintf(“Cannotdividebyzero.\n);}b?printf...printf...非00等价if(b)265.1用if语句设计选择结构程序3.多选择的if结构功能:从多组语句中选择满足条件的语句组执行。用elseif实现多选择。语句格式:if(条件1)语句1;elseif(条件2)语句2;elseif(条件3)语句3;……elseif(条件m)语句m;else语句n;语句1N条件1Y条件2条件nYY语句2语句3语句nNN多选择27例:按分数统计学分,将分数分为五个分数段,分别是:=90、80=90、70=80、60=70、60,对应的学分系数分别是:1.3、1.2、1.1、1、0。程序段如下:if(fs=90)xf=kc*1.3;elseif(fs=80)xf=kc*1.2;elseif(fs=70)xf=kc*1.1;elseif(fs=60)xf=kc;elsexf=0.0;printf(“xf=%f\n”,xf);只做其一285.1用if语句设计选择结构程序说明在if-else语句中,一般采用“缩进”的书写形式来表示“语句1”或“语句2”所属的层次。注意:缩进仅是一种书写形式,不具有逻辑意义。例:银行存款本金计算:期满总金额=本钱+本钱月息月数29intmain(){intyear;floatmoney,rate,total;/*本金月利率本利合计*/printf(Inputmoneyandyear=?);scanf(%f%d,&money,&year);/*输入本金和年*/if(year==1)rate=0.0063;/*根据年限定利率*/elseif(year==2)rate=0.0066;elseif(year==3)rate=0.0069;elseif(year==5)rate=0.0075;elseif(year==8)rate=0.0084;elserate=0.0;total=money+money*rate*12*year;printf(Total=%.2f\n,total);}30if(year==1)rate=0.0063;elseif(year==2)rate=0.0066;elseif(year==3)rate=0.0069;elseif(year==5)rate=0.0075;elseif(year==8)rate=0.0084;elserate=0.0;315.1用if语句设计选择结构程序二.if语句的嵌套格式:if(表达式)if(表达式1)语句11;else语句12;elseif(表达式2)语句21;else语句22;功能:判断表达式的值,若为非0,再判断表达式1的值,非0执行语句11,否则执行语句12;若表达式的值为0,再判断表达式2的值,非0执行语句21,否则执行语句22。外层if内嵌if32例:下列程序段表示的数学式?y=-1;if(x!=0)if(x0)y=2*sin(x);elsey=0;程序段表示的数学式1:0(x0)y=-1(x=0)2sinx(x0)讨论:给第二个if行加{}后表示的数学式?}{程序段表示的数学式2:-1(x0)y=0(x=0)2sinx(x0)数学式1程序可表示为:y=-1;if(x!=0){if(x0)y=2*sin(x);elsey=0;}33例:比较两个整数之间的关系(大小、相等)intmain(){intx,y;printf(EnterintegerXandY:);scanf(%d%d,&x,&y);if(x!=y)if(xy)printf(XY\n);elseprintf(XY\n);elseprintf(X=Y\n);}嵌套的if语句345.1用if语句设计选择结构程序嵌套if-else语句的配对关系例:if(ab)/*…………………1*/if(ac)/*…………………2*/if(ad)flag=1;/*…………………3*/elseflag=2;/*…………………4*/elseflag=3;/*…………………5*/匹配规则:在嵌套的if-else语句中,else子句总是与上面的、离它最近的、且在同一复合语句中还没有配对的if子句配对。35例:a=3,b=2,c=4,d=1;flag=?if(ab){if(ac)if(ad)flag=1;elseflag=2;}elseflag=3;当a=b时,flag=3if(ab)if(ac)if(ad)flag=1;elseflag=2;elseflag=3;当cab时flag=3365.1用if语句设计选择结构程序if(y0)x=-y;elsex=y;(y0)?x=-y:x=y;等价等价x=(y0)?-y:y;说明:ifelse可以完成与条件运算符(?:)完全相同的任务,并且可以进行相应的转换。375.1用if语句设计选择结构程序if语句与条件运算的区别例:if(s==100)printf(“Perfect!”);elseprintf(“Justsoso.”);条件运算符的形式比较简单,有较强的灵活性,可以替代部分if语句。转换:(s==100)?printf(“Perfect!”):printf(“Justsoso.”);转换:printf(s==100?“Perfect!”:“Justsoso”);38第5章选择结构的程序设计用if语句设计选择结构程序用switch语句设计多分支结构程序应用举例39一.switch语句格

1 / 131
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功