




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4输出华氏摄氏温度转换表,4.1程序解析4.2for语句4.3指定次数的循环程序设计,4.1程序解析,例8输出一张华氏摄氏温度转换表,将华氏温度从3040F之间的每一度,分别转换成相应的摄氏温度并输出。fahrcelsius30-1.131-0.6320.0330.6341.1351.7362.2372.8383.3393.9404.4,4.1程序解析-温度转换表,#includevoidmain()intlower,upper;doublecelsius,fahr;lower=30;upper=40;printf(fahrcelsiusn);/温度转换规则:华氏温度从lower到upper,每次增加1Ffor(fahr=lower;fahr=upper;fahr+)celsius=(5.0/9.0)*(fahr-32.0);printf(%3.0f%6.1fn,fahr,celsius);,fahrcelsius30-1.131-0.6320.0330.6341.1351.7362.2372.8383.3393.9404.4,fahr=fahr+1,例8中for语句的流程,for(fahr=lower;fahr=upper;fahr+)celsius=(5.0/9.0)*(fahr-32.0);printf(%3.0f%6.1fn,fahr,celsius);,fahrcelsius30-1.131-0.6320.0330.6341.1351.7362.2372.8383.3393.9404.4,fahr=fahr+2输出?,for(表达式1;表达式2;表达式3)循环体语句;实现C语句的重复执行,4.2for语句-循环语句,3个表达式、循环体语句!书写顺序和执行顺序不同!表达式1只执行一次,循环(控制)变量:for语句中,通过改变或判断某个变量的值来控制循环的执行for(fahr=lower;fahr=upper;fahr+)celsius=(5.0/9.0)*(fahr-32.0);printf(%3.0f%6.1fn,fahr,celsius);,for语句中的循环变量,赋初值,判断其值,改变其值,for(fahr=lower;fahr=upper;fahr+)celsius=(5.0/9.0)*(fahr-32.0);printf(%3.0f%6.1fn,fahr,celsius);,表达式1:给循环变量赋初值,指定循环的起点。fahr=lower表达式2:给出循环的条件,决定循环的继续或结束。fahr=upper表达式3:设置循环的步长,改变循环变量的值,从而可改变表达式2的真假性。fahr+语句:被反复执行的语句,一条语句。,for语句的说明,for(fahr=lower;fahr=upper;fahr+)celsius=(5.0/9.0)*(fahr-32.0);printf(%3.0f%6.1fn,fahr,celsius);,for(fahr=lower;fahr=upper;fahr=fahr+1)celsius=(5.0/9.0)*(fahr-32.0);printf(%3.0f%6.1fn,fahr,celsius);,复合语句和空语句;,for(fahr=lower;fahr=upper;fahr=fahr+1);celsius=(5.0/9.0)*(fahr-32.0);printf(%3.0f%6.1fn,fahr,celsius);,!不要在for语句中随意加分号,抽取具有共性的算式:sum=sum+isum初值为0,该算式重复100次,i从1变到100设i为循环变量,则:指定循环起点的表达式1:i=1给出循环条件的表达式2:i=100设置循环步长的表达式3:i+循环体语句:sum=sum+i;for(i=1;i=100;i+)sum=sum+i;,例9求1+2+100,/*计算1+2+3+100*/#includevoidmain()inti,sum;sum=0;/*置累加和sum的初值为0*/for(i=1;i=100;i+)/*循环重复100次*/sum=sum+i;/*反复累加*/printf(“sum=%dn”,sum);/*输出累加和*/,例9源程序,for(i=1;i=100;i+)sum=0;sum=sum+i;,sum=5050,#includevoidmain()inti,sum;sum=0;/*置累加和sum的初值为0*/for(i=1;i=100;i+)/*循环重复100次*/sum=sum+i;/*反复累加*/printf(“sum=%dn”,sum);/*输出累加和*/,求1+1/2+1/3+1/100,for(i=1;i=100;i+)sum=sum+1.0/i;,inti;doublesum;,printf(“sum=%fn”,sum);,应该包含四个部分(例9):初始化:指定循环起点给循环变量赋初值,如i=1;进入循环之前,设置相关变量的初值,如sum=0。条件控制:只要i100,循环结束。,4.3指定次数的循环程序设计,输入一个正整数n,求前n项和,即循环n次#includevoidmain()inti,sum;sum=0;for(i=1;i=100;i+)sum=sum+i;printf(“sum=%dn”,sum);,求1+2+3+n,for(i=1;i=n;i+)sum=sum+i;,printf(inputn:n);scanf(%d,#includevoidmain()inti,sum;printf(inputn:n);scanf(%d,求1+1/2+1/3+1/n,#includevoidmain()inti;doublesum;printf(inputn:n);scanf(%d,求前n项和,即循环n次,每次累加1项。for(i=1;i=n;i+)sum=sum+item(第i项)item=1.0/(2*i-1),例10求1+1/3+1/5+的前n项和,#includevoidmain()inti,n;doubleitem,sum;printf(inputn:n);scanf(%d,例10源程序,求前n项和,即循环n次,每次累加1项。for(i=1;i=n;i+)sum=sum+item(第i项)item=flag*1.0/tt=t+2flag=-flag,例11求1-1/3+1/5-的前n项和,item=flag*1.0/(2*i-1),#includevoidmain()inti,n;doubleitem,t,flag,sum;printf(inputn:);scanf(%d,例11源程序,n!=1*2*nfor(i=1;i=n;i+)product=product*item(第i项)item=i,例12求n!,product=?,#includevoidmain()inti,n;doubleproduct;printf(inputn:n);scanf(%d,例12源程序,输入实数x和正整数n,计算xn=x*x*xfor(i=1;i=n;i+)power=power*item(第i项)item=?,例13求xn,x,#includevoidmain()inti,n;doublex,power;printf(inputx,n:n);scanf(“%lf%d,例13源程序,5计算12!/(5!7!),5.1程序解析5.2函数的定义5.3函数的调用5.4使用函数编写程序,#includedoublefact(intn);/*函数声明*/voidmain()printf(%fn,fact(12)/(fact(5)+fact(7);doublefact(intn)/*定义求n!的函数*/inti;doubleresult=1;for(i=1;i=n;i+)result=result*i;returnresult;/*把结果回送主函数*/,5.1程序解析求12!/(5!7!)例14,函数:完成一个特定工作的独立程序模块系统函数:C语言系统提供定义,如:scanf()、printf()自定义函数:用户自己定义,如:求阶乘函数fact()C程序:1个main()0.n个函数程序调用某个函数,该函数会完成一些特定的工作,然后返回到调用它的地方。函数经过运算,得到一个明确的运算结果,并需要回送该结果。如:求阶乘函数fact要回送计算出的阶乘值。函数只是完成一系列操作步骤,不需要回送任何运算结果。,5.2函数的定义,函数类型函数名(参数表)/*函数首部*/*函数体*/函数实现过程return表达式;,返回运算结果的函数定义,把函数运算的结果回送给主函数,?分号,函数返回值的类型,doublefact(intn)inti;doubleresult=1;for(i=1;i=n;i+)result=result*i;returnresult;,void函数名(参数表)/*函数首部*/*函数体*/函数实现过程return;/*可省略*/,不返回结果的函数定义,不返回结果,#includevoidoutput1();/*函数声明*/voidmain()output1();voidoutput1()inti;for(i=0;i5;i+)/*输出5行星号*/printf(*n);,例2-15输出五行*,#includevoidoutput2(introw);/*函数声明*/voidmain()output2(5);,输出n行*,通过参数指定输出的行数,使函数的功能更灵活,参数是函数运行需要具备的已知条件,voidoutput2(introw)/*参数row给出行数*/inti;for(i=0;irow;i+)/*输出row行星号*/printf(*n);,doublefact(intn)voidoutput1()voidoutput2(introw)参数表类型1参数1,类型2参数2,类型n参数nintx,inty,floatz,参数表,?intx,y,floatz,#includedoubleexpon(doublex,intn);voidmain()inta;doublet,y;y=expon(3.5,4);printf(3.54=%fn,y);printf(inputt,a:n);scanf(%lf%d,5.3函数的调用,doubleexpon(doublex,intn)inti;doublepower=1.0;for(i=1;i0;n-)power=power*x;returnpower;,1调用语句printf(“%f”,result);output2(5);通常用于void类型函数的调用2表达式调用sum=expon(t,a)+expon(3.5,4);3作函数参数printf(%fn,expon(t,a);相当于:y=expon(t,a);printf(%fn,y);,函数调用的3种形式,例17重做例4输入x,求分段函数f(x)的值,保留2位小数。要求定义和调用函数fun(x)实现该分段函数。exx1f(x)=x2-1x1,4.4使用函数编写程序,/*计算二分段函数*/#include#includefloatfun(floatx);voidmain()floatx,y;printf(inputx:n);scanf(%f,例17源程序,floatfun(floatx)floaty;if(x=1)y=exp(x);elsey=x*x-1;returny;,输出一张华氏摄氏温度转换表其中华氏温度的取值区间是0F,300F,温度间隔20F。要求定义和调用函数ftoc(fahr),将华氏温度C转换为摄氏温度F计算公式:C=(5/9)(F-32)。,例18输出华氏摄氏温度转换,#includevoidmain()intlower,upper;doublecelsius,fahr;lower=0;upper=300;printf(fahrcelsiusn);for(fahr=lower;fahr=upper;fahr=fahr+20)celsius=(5.0/9.0)*(fahr-32.0);printf(%3.0f%6.1fn,fahr,celsius);,例18源程序,flo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辅警工作培训课件
- 农业银行2025钦州市金融科技岗笔试题及答案
- 邮储银行2025遵义市秋招英文面试题库及高分回答
- 中国银行2025广安市秋招笔试综合模拟题库及答案
- 交通银行2025商洛市秋招结构化面试经典题及参考答案
- 2025年3D打印的智能制造技术
- 2025社会救助行业发展趋势报告
- 建设银行2025荆州市秋招无领导模拟题角色攻略
- 邮储银行2025七台河市笔试行测高频题及答案
- 工商银行2025黄南藏族自治州秋招笔试性格测试题专练及答案
- 2024年绍兴职业技术学院军训动员大会校长发言稿9000字
- 物业客服人员培训
- 2025至2030年中国制药装备行业市场全景分析及投资前景展望报告
- 泌尿科膀胱灌注护理课件
- 脊柱区课件教学课件
- 村集体经济培训课件
- 医院清洁消毒灭菌与隔离无菌操作技术
- 信息网络安全考题「附答案」
- 2025年反诈骗知识竞赛问答试题及答案
- 矿井建设工程课件
- 消防设备设施操作讲解培训课件P
评论
0/150
提交评论