- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三讲:程序设计基本方法--程序结构
第三讲程序设计基本方法——程序结构 找出两个数据中最大值方法之二: #include stdio.h // max for serch max one form two int max( int x, int y ) { int z; if (x y) z = x; else z = y; return z ; } // main call max for serch max one form two int main( void ) { int a, b , c; int max( int x, int y ); scanf(″%d%d″, a, b ); c = max( a, b) printf(″max=%d \n″,c); return 0 } 程序的构成: mian函数外加若干其它函数 函数的构成: 函数抬头和函数体构成 函数头:函数类型 函数名(函数形参列表) 函数体:{ 若干声明变量和被调函数的语句; 若干执行数据I/O及处理的语句; } 注意: 预编译命令行和函数抬头行末尾不带分号 每一个声明或执行语句必须以分号结尾 函数体的声明部分 (1)变量声明语句,格式为: 类型符 变量名表; 类型符为:int、float、char等 变量名表为:用逗号间隔的若干变量 (2)被调函数声明语句,格式为: 被调函数的函数头; 函数体的执行部分 若干执行数据I/O及处理的语句 如何设计程序中函数的执行体部分? ——程序的三种基本结构: 顺序结构、分支(选择)结构、循环结构 分支结构语句之一if语句 ⑴if选择结构的一般形式: if(表达式) 语句A; [else 语句B;] ⑵ if选择结构执行过程 ⑶ if选择结构的多分支 因if子句和else子句中语句不限(可为语句块),故可衍变出if-else if、 if嵌套等复杂的多分支结构。 else总是与它前面最近的if配对 在一对{ }里的多个语句称之为“语句块”或“复合语句” if- else if形式 分支结构语句之二:switch语句 switch(表达式) { case常量表达式1: 语句1; case常量表达式2: 语句2; … case常量表达式n: 语句n; default : 语句n+1; } 执行过程: 转向与switch表达式值匹配的某case分支或者default分支 允许case分支省略复合语句定界符{ } case分支末尾语句为break语句,表示即到switch出口 注意if和switch表达式的区别!! if表达式的值域为:1和0,分别表示真和假 switch表达式的值域为所有case 分支常量值的集合 循环结构 循环结构用于解决有限次重复执行规律性变化的操作 若循环条件成立,则重复执行指定程序段即循环体,直到条件不成立为止。 允许循环嵌套 循环结构程序设计四部曲: ①循环前的初始化 ②循环控制条件 ③循环体——重复执行操作的规律性 ④ 使循环控制趋于结束 允许循环嵌套 (1) while语句 (3) for语句 for语句构成循环结构的一般形式: for(表达式1;表达式2;表达式3) 语句; 其中: 表达式和语句不限,且可省略。但通常 ①表达式1 用于循环赋初值 ②表达式2 描述循环条件 ④表达式3 用于使循环控制变量值朝循环终止方向变化 for结构灵活多变: 表达式1可提到for之前 表达式2和3和放在循环体内 简单的循环体放到表达式2或3中 【例3.18】由小到大排序,使用选择法。 分析与思考: ⑴如何从N个数中选择最小值 ①以头一个数据为比较基准 逐一比较大小 ②记录最小值下标 ③实现俩数据值互换? ⑵如何继续在剩余的数中选择其中的最小值 如何实现俩数据值互换? 思考:① 如何记录最小值下标?②如何实现俩数据值互换? #includestdio.h #includestdlib.h #define N 10 #define M 100 int main(){ int a[N],i,j,r,temp; srand(time(0)); //设置随机数因子 printf(“The array before sort:\n”); //产生N个不大于M的正整数 for(i=0;iN;i++) printf(%5d, a[i]=random()%M+1); for(i=0;iN-1;i++){//处理NUM
文档评论(0)