版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计基础刘新国1回顾分支结构ifif/elseif/else if/else if/elseswitch2假表达式1表达式2语句1语句2语句n-1语句n真 表达式n-1假真 假假真 if/else if语句if (表达式1) 语句1else if(表达式2) 语句2else if(表达式n-1) 语句n-1else 语句nswitch语句流程图4假v=常量1?语句段1语句段2语句段n语句段n+1真 假真 v=常量2?v=常量n?入口计算表达式值v出口假假真 从哪个语句段开始执行?有n+1个入口可以选择分别对应n个case的入口和1个缺省(default)的入口根据表达式的值决定执行入
2、口如果表达式等于常量表达式k,那么从语句段k开始执行第二章循环结构while循环结构do-while循环结构break语句和continue语句多重/嵌套循环5for语句回顾for( 表达式1;表达式2;表达式3 ) 循环体语句for( i=1; i 0.0001 ) item = flag * 1.0/denominator; sum = sum + item; /* 准备下一项 */ flag = -flag; denominator = denominator + 2;printf( pi = %.4fn, sum * 4 );10item的初值有多重要?while语句应用( II )例
3、4-2,P67 输入一批学生成绩,以负数作为结束标志,计算平均成绩,统计不及格人数。int num, failed;double grade, sum;num = failed = 0;sum = 0;printf(Enter grades:);11成绩个数未知!适合while循环统计学生成绩scanf(%lf, &grade);while( grade =0 ) sum = sum + grade; num +; if( grade 9 )循环体中break和continue语句例4-4,P70素数的判定问题:除了1和自身,不能被别的数整除int i, m;scanf(%d, &m);for
4、( i = 2; im/2 & m!=1 ) printf(Yesn);else printf(No!n);17for循环中的break语句for( 表达式1;表达式2;表达式3 ) 语句段1 if( exp ) break; 语句段218表达式2语句段1真假表达式1 表达式3语句段2exp真假for循环中的continue语句for( 表达式1;表达式2;表达式3 ) 语句段1 if( exp ) continue; 语句段219表达式2语句段1真假表达式1 表达式3语句段2exp真假while循环中的break语句while( 表达式 ) 语句段1 if( exp ) break; 语句段
5、220表达式语句段1真假语句段2exp真假while循环中的coninue语句while( 表达式 ) 语句段1 if( exp ) continue; 语句段221表达式语句段1真假语句段2exp真假循环体中break和continue语句适用于所有的循环结构for, while, do-while用于灵活控制循环结构的执行流程22多重嵌套循环for, while, do-while 能够相互嵌套构成多重循环处理多维数据处理复杂过程23多重嵌套循环假设有一幅宽度为width、高度为height的图像,使用for-for嵌套语句,对它的每一个像素进行处理。(例如亮度值放大)for( x = 0
6、; x width; x + ) for( y = 0; y height; y + ) /* 处理坐标为(x,y)的图像像素 */ /* 具体代码略 */ 24循环体被执行了多少次?width * height每个像素用(x,y)坐标表示省略 多重嵌套循环假设有一幅宽度为width、高度为height的图像,使用for-for嵌套语句,对它的每一个像素进行处理。(例如亮度值放大)for( x = 0; x width; x + ) for( y = 0; y height; y + ) /* 处理坐标为(x,y)的图像像素 */ 25循环体被执行了多少次?width * height循环结构
7、的设计循环程序的实现要点:归纳出哪些操作需要反复执行? 循环体这些操作在什么情况下重复执行? 循环条件选用合适的循环语句for while do-while循环具体实现时考虑(循环条件):事先给定循环次数,首选for通过其他条件控制循环,考虑while或do-while至少执行1次,用do-while否则,用while26例4-8,P78 n个成绩的最高分int n, i, grade, max;printf(Enter n: );scanf (%d, &n);printf(Enter %d marks: , n);scanf (%d, &mark);max = mark;/* 剩余成绩循环处
8、理 */* 次数未知,适合while语句 */27例4-8,P78 n个成绩的最高分for( i = 1; i n; i+ ) scanf (%d, &mark); if( max =0 ) if( max mark ) max = mark; scanf (%d, &mark); printf(Max = %dn, max);30例4-9,P80 将整数按照数字逆序输出例如:x = 12345 的逆序为 54321如何得到呢?从低位开始逐个计算 5 = x % 10,x x/10 = 1234 4 = x % 10,x x/10 = 123 3 = x % 10,x x/10 = 12 2
9、= x % 10,x x/10 = 1 1 = x % 10,x x/10 = 0 结束31例4-9,P80 将整数按照数字逆序输出int x;printf(Enter x: );scanf (%d, &x);/* 对每一位数字进行循环处理 */* 次数未知,适合while语句 */32例4-9,P80 将整数按照数字逆序输出while( x != 0 ) printf( %d, x%10 ); x = x/10;33例4-9,P80 将整数按照数字逆序输出/* 用 do-while 实现 */do printf( %d, x%10 ); x = x/10; while( x != 0 )用
10、do-while 实现更好,对0也work!34例4-10,P81求100以内的素数每行输出10个需要考察的整数范围2,3,4,100素数:没有真因子。 对于整数 m,真因子的范围是:1 真因子 m1 真因子 = m/2如非素数,必有真因子满足:1 真因子 = m1/2每行输出10个当个数是10的倍数时,输出换行符printf(n);35#include#includeint count, m, n, i;count = 0;for( m = 2; m100; m+ ) n = sqrt(m); for( i=2; i=n; i+ ) if( m%i=0 ) break; if( i=n )
11、continue; printf(%6d, m); count +; if( count%10=0 ) printf(n);36例4-11,P82计算并输出:斐波那契数列前10项1 1 2 3 5 8 13 21 从第3项起,等于前2项之和int x1, x2, x, i;x1 = x2 = 1;printf(%6d%6d,x1,x2);37例4-11,P82计算并输出:斐波那契数列前10项for( i=3; i=10; i+ ) x = x1 + x2; printf(%6d,x); x1 = x2; x2 = x;printf(n);38例4-12,P82穷举算法(搬砖)男人:3块/人女人
12、:2块/人小孩:1块/2人问:45人搬45块砖,有多少种搬法?int men, women, child;39例4-12,P82穷举算法(搬砖)for( men=0; men=45; men+ )for( women=0; women=45; women+ )for( child=0; child=45; child+ ) if( men+women+child=45 & men*3+women*2+child*0.5=45 ) printf(men=%d, women=%d, child=%dn, men, women, child); 40合计执行多少次循环操作?45*45*45改进1for( men=0; men=45; men+ )for( women=0; women=0 & men*3+women*2+child*0.5=45 ) printf(men=%d, women=%d, child=%dn, men, women, child); 41合计执行多少次循环操作?45*45改进2for( men=0; men=15; men+ )for( women=0; women=22; women+ ) child = 45-men-women; if( men*3+women*2+child*0.5=45
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《婴幼儿常见病识别与预防》课件-流行性腮腺炎
- 购房政策调解协议书模板
- 2024年秋新教科版八年级物理上册全册课件(新版教材)
- 幼儿园环境创设 课件 项目7 幼儿园民族民间文化环境创设
- 中国电动汽车热泵空调行业市场调查及投资前景分析报告2024-2030年
- 2022人工智能医疗产业发展蓝皮书
- 《 呼和浩特市残疾人就业保障金征收管理研究》
- 吊篮使用安全培训
- 各种手势文化英语知识
- 北师大版小学英语一年级上册期中考卷含参考答案
- 第2章_外部效应
- skopos theory翻译功能目的论(课堂PPT)
- 数学常用对数表
- 起重伤害事故案例课件
- 关于限期返岗通知书工伤
- 海底捞管理制度
- 德尔福喷油器介绍
- 中国港口协会集装箱分会文件
- 建筑用砂国家技术标准BG
- 在境外居住人员领取养老金资格审核表
- 国际航空运输进出港货物交接及费用结算协议
评论
0/150
提交评论