为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

c5

2011-11-04 38页 ppt 930KB 45阅读

用户头像

is_783989

暂无简介

举报
c5null第五章 循环结构 共 31 页 第 * 页第五章 循环结构 本章要点: · 建立循环程序设计的基本概念和逻辑思维 · 掌握循环程序设计的方法大连理工大学循环的基本概念共 31 页 第 * 页什么是循环? 为什么要使用循环?循环的基本概念循环是有规律的重复操作。将复杂问题分解为简单的操作过程,程序只对简单过程描述,这些过程的多次重复就可完成对问题的求解。重复的频繁性决定了循环在程序设计中必不可少!问题2:求学生平均成绩 分数相加后除以课数做99次加法问题分解 循环控制null共 31 页 第 * ...
c5
null第五章 循环结构 共 31 页 第 * 页第五章 循环结构 本章要点: · 建立循环程序设计的基本概念和逻辑思维 · 掌握循环程序设计的方法大连理工大学循环的基本概念共 31 页 第 * 页什么是循环? 为什么要使用循环?循环的基本概念循环是有规律的重复操作。将复杂问题分解为简单的操作过程,程序只对简单过程描述,这些过程的多次重复就可完成对问题的求解。重复的频繁性决定了循环在程序设计中必不可少!问题2:求学生平均成绩 分数相加后除以课数做99次加法问题分解 循环控制null共 31 页 第 * 页 if--goto 循环 while循环 for循环 do while循环 先判断后循环 先循环后判断 特点:难点: C提供四种循环控制:5.1 if-goto 语句循环 共 31 页 第 * 页5.1 if-goto 语句循环 一般形式: goto 标号; 标号:语句 其中:标号用标识符表示,即由字母、数字和下划线组成,且首字符必须为字母或下划线。不能用整数来作标号。 用途: 1. 与if语句一起构成循环结构。 2. 从循环体中跳到循环体外(一般指最深层)。 3. 改变程序自上而下的执行顺序。 缺点:滥用goto语句,可使程序无规律、可读性差。null共 31 页 第 * 页 main( ) {int i=1,s=0; L1: if(i<=100) { s=s+i; i++ ; goto L1; } printf(“s=%d\n”,s); } 假真 求和 s=1+2+······+100运行结果: S=?例1null共 31 页 第 * 页1.while循环语句的形式 while(表达式)语句 先判断条件,后执行语句表达式语句假真2.执行过程注意: 循环体若包含一个以上语句,应该用花括号括起来(使用复合语句)。 循环体内应注意设置修改循环条件的语句。否则循环无法终止。 5.2 while循环语句 null共 31 页 第 * 页说明: (1)执行while循环语句时,如果表达式的值第一次计算就等于0,则循环体一次也不执行。 (2)发生下列情况之一时,while循环结束执行: 表达式的值为0; 循环体内遇到break语句; 循环体内遇到goto 语句,且与该goto语句配合 使用的标号所指定的语句在本循环体外; 循环体内遇到return语句,此时退出while循环后,执行的从包含该while语句的函数返回到调用函数。null共 31 页 第 * 页 求main() { int i=1,sum=0; while (i<=100) { sum=sum+i; i++; } printf("%d",sum); }例2null共 31 页 第 * 页 输入一批正数,输入0时表示输入结束,求这些正数的和。main( ) { int s=0, x; scanf(“%d”,&x); while( x!=0 ) { s=s+x; scanf(“%d”,&x); } printf(“s=%d\n”,s); }例3null共 31 页 第 * 页已知y=2x3-3x4+6x5-4x+50, 从x=0到x=2, 每隔0.2计算并输出的值,然后输出y 的值最大值和最小值.null共 31 页 第 * 页#include “math.h” main() { double x=0,max,min,y; y=2*x*x*x-3*x*x*x*x+6*pow(x,5)-4*x+50; max=min=y; while(x<=2) { y=2*x*x*x-3*x*x*x*x+6*pow(x,5)-4*x+50; if(y>max) max=y; if(y main ( ) { int k, m, j; scanf ( “%d”, &m); for ( k=1; k<=m; k++) /* 控制打印m行 */ {for ( j=1; j<=k; j++) /* 打印一行中的m个*号 */ printf (“* ”); printf(“\n”) ; } }整理得到程序如下:例:输出下三角形乘法九九表共 31 页 第 * 页 1 2 3 4 5 6 7 8 9 --------------------------------------- 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81 i=7 j=5 i*j(1<=i<=9)(1<=j<=i)例:输出下三角形乘法九九表null共 31 页 第 * 页 #include main ( ) { int i=1, j; while (i<=9 ) /* 控制打印表头 */ printf ("%4d",i++); printf("\n-------------------------------\n"); for (i=1;i<=9;i++) { j=1; while (j<=i ) { printf (“%4d”, i*j); j ++; } printf ("\n"); } }打印乘法九九表内循环终值与外循环变量有关null共 31 页 第 * 页main() /*无表头*/ { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) printf(“%3d”, i*j); printf(“\n”); } }程序运行演示null共 31 页 第 * 页用for语句实现打印乘法九九表。 #include main ( ) { int i, j; for ( i=1; i<=9; i++ ) printf ("%4d",i); printf ("\n------------------------\n"); for ( i=1; i<=9; i++ ) for ( j=1; j<=i; j++ ) printf ( (j==i) ? "%4d\n":"%4d",i*j); }输出函数printf中使用了“?”操作,含义相当于: if ( j==i ) printf ("%4d\n", i*j ); else printf ("%4d", i*j );5.7 break和continue语句共 31 页 第 * 页5.7 break和continue语句1. break 语句 语法: break ; 功能:终止包含该语句的最内层循环。 main( ) { int n; for(n=100;n<=200;n++) { if(n%3==0) break ; printf(“%6d”,n); } }2. continue 语句 语法:continue ; 功能:结束循环体的本次执行。 main( ) { int n; for(n=100;n<=200;n++) { if(n%3==0) continue ; printf(“%6d”,n); } }该语句只能出现在switch,for, while或do—while语句中。null共 31 页 第 * 页3. 空语句 形式: ;(只由一个分号构成) 功能: 什么也不做。(可出现在程序中任何语句可以出现的地方) 例8:求级数12+22+32+…,前10项之和。 main( ) { int i, sum; for(sum=0,i=1;i<=10;sum+=i*i, i++) ; printf(“sum=%d\n”, sum); }null共 31 页 第 * 页main() { int i=1; while(i-->0) printf("while=%d\n",i); printf("%d",i); }while=0 -1程序运行演示null共 31 页 第 * 页练习:指出下面程序的运行结果。 main() { int i=10; while( i-->0); printf(“%d\n”,i); } main() { int x=3; do {printf(“%3d”,x- =2);} while(!(--x)); } -11 -2null共 31 页 第 * 页例1. 输入一个整数m,判断是否为素数。 若m不能被2—m-1之间的任何一个整数整除,则m即为素数。 算法思想:设k=m-1,用2至m-1依次去除m, 若m能被2—k之中任何一个整数整除,则不必除下去,肯定不是素数,跳出循环,(i<=k)。若所有数都不能被除尽,则循环自然完成。此时i>=k+1.在循环之后判别i的值是否大于或等于k+1,若是,则表明未曾被2—k之间任一整数整除过,因此输出“是素数”。 编程举例null共 31 页 第 * 页程序如下: main( ) { int m, i, k; scanf(“%d”,&m); k=m-1; for(i=2; i<=k; i++) if(m%i= =0) break; if(i>=k+1) printf(“%d is a prime number\n”, m); else printf(“%d is not a prime number\n”, m); }null共 31 页 第 * 页求以下级数和的近似值: y(x)=x+x3+ x5+ x7+…3*1!5*2!7*3!令x=0.5, 1.0, 2.0, 3.0, 取前10项之和, 分别计算y(x).null共 31 页 第 * 页 main() { int i,j; long n; double x,y, m; j=1; x=0.5; L: i=1; n=1; m=x*x*x; y=x; while(i<=9) { y=y+m / ((2*(i+1)-1)*n); m=m*x*x; n=n*i; i++; } printf(“y=%f”,y); if(x==0.5) x=1.0; else x=x+1.0; j++; if(j<=4) goto L; } null共 31 页 第 * 页上机题目: 1. /4≈1-1/3+1/5-1/7+…., 取前10项之和, 求的近似值. 2. e=1+1/1! +1/2! +1/3! + …+ 1/n! +… 求e 的值, 根据输入的n 值, 求前n 项之和. 3. 打印乘法表 4. 上机完不成,下次课交作业,P 72 五(3,4)
/
本文档为【c5】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索