lesson程序的组织结构函数定义_第1页
lesson程序的组织结构函数定义_第2页
lesson程序的组织结构函数定义_第3页
lesson程序的组织结构函数定义_第4页
lesson程序的组织结构函数定义_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023/1/17Lesson12程序的组织结构2023/1/17学习目标:31掌握结构化程序设计的思想使用函数2023/1/173标准函数4函数:根据输入,经过一系列运算过程(步骤),得到结果y=sin(30)30acbsin(30)的含义:如图中:b/a2023/1/173函数31、标准函数:C语言提供了很多标准函数,它们被放置在一起,形成了一个标准函数库。

2、自定义函数:自己定义的函数。两类函数2023/1/173标准函数4头文件函数类别math.h包含与数学有关的函数ctype.h包含与字符处理有关的函数string.h包含与字符串有关的函数stdio.h包含与输入输出有关的函数2023/1/173标准函数4函数原型功能描述doublesin(doublex)返回double型x的正弦,x是弧度doublesqrt(doublex)返回double型x的平方根doublepow(doublex,doubley)返回xy调用函数时,不但需要了解函数的功能,还要通过函数原型弄清楚函数需要的参数格式以及函数的返回类型2023/1/173标准函数4例1:根据给定的两个坐标点(x1,y1)和(x2,y2),计算两点之间的距离。

问题分析计算两点之间距离的公式为

d=在这个公式中含有平方和开平方的运算,可以直接利用C语言提供的标准函数实现这两个运算。

2023/1/17算法描述

2023/1/17#include<stdio.h>#include<math.h>intmain(){intx1,y1,x2,y2;doubledistance;printf("\nEnter2coordinates(x1,y1,x2,y2)\n");scanf("%d%d%d%d",&x1,&y1,&x2,&y2); printf("\nThefirstcoordinateis(%d,%d)",x1,y1); printf("\nThesecondcoordinateis(%d,%d)",x2,y2);distance=sqrt(pow(x2-x1,2)+pow(y2-y1,2)); printf("\nThedistanceis%f",distance); return0;}lesson12_01.c2023/1/173自定义函数6引例:计算如下式子的和2023/1/43自定义函数2#include<stdio.h>intmain(){inti,sum=0,sum1=0,sum2=0,sum3=0;for(i=3;i<=23;i++)sum1+=i;for(i=5;i<=30;i++)sum2+=i;for(i=8;i<=33;i++)sum3+=i;sum=sum1+sum2+sum3;printf("sum=%d\n",sum);return0;}lesson12_0.c2023/1/43自定义函数2#include<stdio.h>intmain(){inti,sum=0,sum1=0,sum2=0,sum3=0;for(i=3;i<=23;i++)sum1+=i;for(i=5;i<=30;i++)sum2+=i;for(i=8;i<=33;i++)sum3+=i;sum=sum1+sum2+sum3;printf("sum=%d\n",sum);return0;}这里三个个过程都都一样,,都是给给定一个个起始、、结束(输入)的区间得得到期间间整数的的和(输出)2023/1/43自定义函数5实现一个个实现前前需要明明确:1、该模块块需要解解决一个个什么问问题,完成一个个什么任任务2、解决该该问题需需要知道道些什么么条件如何自定定义一个个函数?2023/1/43自定义函数5类型函函数名(类型参参数1,类型参参数2,………)返回值类类型标识符参数表:需要知道道的条件件返回值函数出口口{}函数体;return表达式;主要部分分:完成模块块需要完完成的功功能(任任务)2023/1/43自定义函数5例题:给定一个个区间,,计算其其间整数数的和1、该模块块需要解解决一个个什么问问题:求整数的的累加和和2、需要知知道些什什么条件件区间的起起始值、、结束值值把他作为为参数循环求和和2023/1/43自定义函数5例:intsumTo(intstart,intend){inti,s=0;for(i=start;i<=end;i++)s+=i;returns;}2023/1/4#include<stdio.h>intsumTo(intstart,intend);intsumTo(intstart,intend){inti=0,s=0;for(i=start;i<=end;i++)s+=i;returns;}intmain(){inti,sum=0,sum1=0,sum2=0,sum3=0;sum1=sumTo(3,23);sum2=sumTo(5,30);sum3=sumTo(8,33);sum=sum1+sum2+sum3;printf("sum=%d\n",sum);return0;}声明,告诉C语言有这样一一个函数调用,使用该该函数,得到到3-23整数之和3、实现,编写写代码实现过过程lesson12_0_1.c2023/1/43自定义函数5C语言规定,一一个函数可以以有返回值,,也可以没有有返回值。如如果有返回值值,返回值的的类型在函数数名前声明,,并在函数体体中利用return语句将返回值值返回;如果果没有返回值值,在函数名名前声明void。默认的返回类类型是int函数定义不能放在另一个函数里面,不能嵌套定义。

函数名不但应该符合C语言的自定义标识符命名规范,还应该“见名知意”。2023/1/43自定义函数5参数数表表是是函函数数之之间间交交换换如果形式参数属于一维数组类型,无须指出一维数组的元素个数,一般通过其他参数指出。函数体是函数的核心部分,在这里列出需要执行的语句序列。

2023/1/43自定义函数5函数的返返回值在声明函函数的时时候,函函数名前前使用了了保留字字void,说明这这个函数数没有返返回值;;否则,,这个函函数执行行完毕后后,应该该返回一一个相应应类型的的数值。。return表达式;;2023/1/43函数调用7函数的调调用函数调用用语句的的基本格格式为::<函数名>(<实在参数数表>);实在参数数与形式式参数的的数据类类型和个个数一一一对应。。2023/1/43函数应用8例3:计算::s=1+(1*2)+(1*2*3)+…+(1*2*3*4*…*10)分析:sum=1!+2!+3!+4!+………+10!存在这样样一个过过程:输输入一个个n,得到n的阶乘定义一个个求n的阶乘的的函数2023/1/4intfun(intn){inti=0,s=1;for(i=1;i<=n;i++)s*=i;returns;}lesson12_03.c2023/1/4#include<stdio.h>intfun(intn);intmain(){inti=0,sum=0;for(i=1;i<=10;i++){sum+=fun(i);}printf(“1!+2!+3!+…=%d”,sum);return0;}intfun(intn){inti=0,s=1;for(i=1;i<=n;i++)s*=i;returns;}lesson12_03.c2023/1/43课堂练习9计算:s=1/1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)n的值从键键盘输入入2023/1/43函数应用8数组作为为函数参参数问题:在主函数数中定义义了一个个数组intdata[]={1,2,3,4,5,6,7,8,9,0}在sum函数中要要对该数数组求和和,如何何定义sum函数才能能将数组组data传到sum函数中呢呢2023/1/43函数应用8数组作为为函数参参数定义形式式类型名函函数数名(类型名数数组名[],类型名参参数数名)intsum(inta[],intlen){inti,s=0;for(i=0;i<len;i++)s+=a[i];returns;}2023/1/4#include<stdio.h>intsum(inta[],intlen);intmain(){intdata[]={1,2,3,4,5,6,7,8,9,0},s;s=sum(data,10);printf("s=%d",s);return0;}intsum(inta[],intlen){inti,s=0;for(i=0;i<len;i++)s+=a[i];returns;}2023/1/43函数应用8例4:使用函数的的方法,编写程序求数数组的最大值值分析:定义一个函数数getMax,在该函数中中传入一个数数组,求该数数组的最大值值2023/1/4#include<stdio.h>intgetMax(intd[],intlen);intmain(){intmax,data[10]={1,2,4,5,3,10,9,6,8,7};max=getMax(data,10);printf(“最大值值是%d””,max);return0;}intgetMax(intd[],intlen){inti=0,m=d[0];for(i=0;i<len;i++)if(d[i]>m)m=d[i];returnm;}注意::参数数为数数组的的定义义方法法len:数组组的长长度注意::调用用时直直接传传数组组名lesson12_04.c2023/1/43函数应用8课堂练练习::使用用函数数的方方法,,计算算一个个数组组中的的奇数数和要求::定义义一个个函数数sum(intdata[],intlen),该函数数的功功能是是计算算数组组data中的奇奇数和和在主函函数中中定义义一个个数组组a,从键键盘给给该数数组的的每个个元素素输入入值,,调用用该函函数,,输出出其中中的奇奇数和和2023/1/43课后练习101、使用函函数求1*2*3+4*5*6+7*8*9+……100*101*1022、使用函函数求水水仙花数数3、使用函函数打印印等腰三三角形4、使用函函数求所所有的[1,1000]范围内的的完数(完数:因因子(不不过括自自身)和和等于自自身的数数)9、静夜四四无邻,,荒居旧旧业贫。。。1月-231月-23Wednesday,Janu10、雨中黄叶树,灯下白头人。。09:58:2209:58:2209:581/17/20239:58:22AM11、以我独沈久,愧君相见频。。1月-2309:58:2209:58Jan-2317-Jan-2312、故人江海别,几度隔山川。。09:58:2209:58:2209:58Tuesday,January17,202313、乍见翻疑梦,相悲各问年。。1月-231月-2309:58:2209:58:22January17,202314、他乡生白发,旧国见青山。。17一月20239:58:22上午09:58:221月-2315、比不了得就不比,得不到的就不要。。。一月239:58上午1月-2309:58January17,202316、行动出成果,工作出财富。。2023/1/179:58:2209:58:2217January202317、做前,能够环视四周;做时,你只能或者最好沿着以脚为起点的射线向前。。9:58:22上午9:58上午09:58:221月-239、没有失败,只有暂时停止成功!。1月-231月-23Tuesday,January17,202310、很多事情努力了未必有结果,但是不努力却什么改变也没有。。09:58:2209:58:2209:581/17/20239:58:22AM11、成功就是日复一日那一点点小小努力的积累。。1月-2309:58:2209:58Jan-2317-Jan-2312、世间成事,不求其绝对圆满,留一份不足,可得无限完美。。09:58:2209:58:2209:58Tuesday,January17,202313、不知香积寺,数里入云峰。。1月-231月-2309:58:2209:58:22January17,202314、意志坚强的人能把世界放在手中像泥块一样任意揉捏。17一月20239:58:22上午09:58:221月-2315、楚塞三湘接,荆门九派通。。。一月239:58上午1月-2309:58January17,202316、少年十五二十时,步行夺得胡马骑。。2023/1/179:58:2209:58:2217January202317、空山新雨后,天气晚来秋。。9:58:22上午9:58上午09:58:221月-239、杨柳散和风,青山澹吾虑。。1月-231月-23Tuesday,January17,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论