c语言中构成循环的三个要素,C语言第三讲循环.ppt

《C语言第三讲循环.ppt》由会员分享,可在线阅读,更多相关《C语言第三讲循环.ppt(34页珍藏版)》请在人人文库网上搜索。

1、循环重复性劳动的解决方案,问题的提出1,对于在屏幕上打印蜡烛的程序,在蜡烛本体打印时可以通过如下代码完成: printf(“ *n”); printf(“ *n”); printf(“ *n”); printf(“ *n”); printf(“ *n”); printf(“ *n”); 以上代码存在的问题很明显:如果蜡烛本体比较高,需要的printf调用语句数量太多,程序将很难书写,问题的提出2,如果希望计算123n,程序可以编写如下: int sum = 0 ; sum += 1 ; sum += 2 ; sum += n ; 如果N很大,比如说10000,那么上面的计算赋值表达式语句就要写。

2、10000行,这样的效率是无法接受的,问题1 解决方案,蜡烛本体打印程序代码重写如下: int i , n = 10; for( i = 0 ; i n ; i + ) printf( *n); 以上代码可以实现任意多行的字符串输出,问题2 解决方案,自然数累加程序代码重写如下: int i , n = 10000 , sum = 0 ; for( i = 1 ; i = n ; i + ) sum += i ; 以上代码可以解决一定数值范围内的自然数累加问题(取决于计算机中整数的表示范围),循环的要素,以上两个例子为典型的C语言循环语句的应用;在C语言中,构成循环有三个要素 for( i =。

3、 1 ; i = n ; i + ),初始条件,循环条件,循环进度控制,for语句的语法,for(初始条件表达式;循环条件表达式;循环进度控制表达式 ) 循环体 for语句中三个表达式之间要用 ; 隔开 循环体可以是一条语句,也可以是一系列语句,如果是一系列语句,则必须将这些语句用一对 括起来,关系表达式,for语句语法中的初始条件表达式、循环条件表达式、循环进度控制表达式在大部分情况下都是关系表达式 关系表达式的概念:比较两个变量的某种关系 关系表达式的运算结果有两种:“真” 或“假” 例如:100 50 的运算结果为真 而:100 50 的运算结果为假,关系操作符,初始条件表达式,循环条件。

4、表达式,循环体,循环进度控制表达式,循环条件表达式运算结果为真,循环条件表达式运算结果为假,进入后续程序,for语句执行流程,循环实例1,蜡烛本体打印程序代码: int i , n = 10; int k = 0; / 循环次数 for( i = 0 ; i n ; i + ) k+; printf( * t ); printf( 第%d次循环ti=%dn, k, i ); printf(循环结束,k=%d i=%dn, k, i); /注意k,i /的变化,循环 条件表达式可以是多个表达式用,连接,int i , n = 10; int k ; / 循环次数 for( i = 0 , k =。

5、 0; i n ; i + ) k+; printf( * t ); printf( 第%d次循环ti=%dn, k, i ); printf(循环结束,k=%d i=%dn, k, i);,条件表达式还可以这样写,循环 条件表达式如果省略会如何,int i, n = 10; int k = 0; / 循环次数 for( i = 0 ; i n ; i + ) k+; printf( * t ); printf( 第%d次循环ti=%dn, k, i ); printf(循环结束,k=%d i=%dn, k, i);,条件表达式如果省略,int n = 10; int k = 0; / 循环次。

6、数 for( int i = 0; i n ; i + ) k+; printf( * t ); printf( 第%d次循环ti=%dn, k, i ); printf(循环结束,k=%d i=%dn, k, i);,for语句中定义变量,该变量的作用域仅限于本循环体内,循环 初始条件表达式中可以定义变量(新版C语言规范及C+语言),int i , n = 10; int k = 0; / 循环次数 for( i = 0; i n ; i + ) k +; i -; printf( * t ); printf( 第%d次循环ti=%dn, k, i ); printf(循环结束,k=%d i。

7、=%dn, k, i);,条件表达式中变量被修改,条件表达式中的变量如果在循环体中被修改 务必慎重,printf的一点技巧,int i , n = 10; int k = 0; / 循环次数 for( i = 1 ; i n ; i + ) printf(%*c, i, *); printf(n); ,对输出宽度的控制,良好的循环体书写风格,main() int i, n = 10; int k = 0; / 循环次数 for( i = 0 ; i n ; i + ) k+; printf( * t ); printf( 第%d次循环ti=%dn, k, i ); printf(循环结束,k=。

8、%d i=%dn, k, i); ,良好的循环体书写风格,main() int i, n = 10; int k = 0; / 循环次数 for( i = 0 ; i n ; i + ) k+; printf( * t ); printf( 第%d次循环ti=%dn, k, i ); printf(循环结束,k=%d i=%dn, k, i); ,不好的循环体书写风格,main() int i, n = 10; int k = 0; / 循环次数 for( i = 0 ; i n ; i + ) k+; printf( * t ); printf( 第%d次循环ti=%dn, k, i ); 。

9、printf(循环结束,k=%d i=%dn, k, i); ,很不好的循环体书写风格,main() int i, n = 10; int k = 0; / 循环次数 for( i = 0 ; i n ; i + ) k+; printf( * t ); printf( 第%d次循环ti=%dn, k, i ); printf(循环结束,k=%d i=%dn, k, i); ,波形数据输出,void main() const double pai = 3.14159265359; unsigned int f = 50; double ampMax=100.0, amp, t; scanf(%。

10、lf, ,amp,t,ampMax,多点波形数据输出,void main() const double pai = 3.14159265359; unsigned int f = 50; double ampMax=100.0, amp, t, t1, t2; int n=10; scanf(%lf%lf%d, ,波形数据 再复杂一点 如何求一个波形的积分,通过积分的近似公式进行求解,如果步长x取得足够小,那么计算结果就越接近真实值,积分求解程序代码,void main() double integ; double a, b, x, dx; int n; / 求解区间分段数 scanf(%lf。

11、%lf%d, ,双重积分 循环的嵌套,双重积分求解程序代码,void main() double lineInteg, faceInteg; double a=0, b=3.14, x, dx, c=0, d=1, y, dy; int nx = 10, ny = 10; / 求解区间分段数 dx = (b - a) / nx; dy = (d - c) / ny; faceInteg = 0; for( y = c; y = d - dy; y += dy ) lineInteg = 0; for( x = a; x = b - dx; x += dx ) lineInteg += f(x,。

12、y) * dx; faceInteg += lineInteg * dy; printf(积分值 = %fn, faceInteg); ,循环的嵌套,int i, j; for( i = 0 ; i 2 ; i + ) for( j = 0; j 3 ; j + ) printf(内层循环 j=%dn, j ); getch(); printf(外层循环 i=%dn, i ); getch(); printf(n全部循环结束!n);,while循环语句,int i=0; while(i2) printf(循环 i=%dn, i ); getch(); printf(n循环结束!n);,whil。

13、e循环语句,初始条件表达式; while(循环条件表达式) 有关操作; 循环进度控制表达式; ,do while循环语句,int i=0; do printf(循环 i=%dn, i ); getch(); while(i2); printf(n循环结束!n);,do while循环语句,初始条件表达式; do 有关操作; 循环进度控制表达式; while(循环条件表达式);,continue,int i; for( i = 0 ; i 2 ; i + ) printf(循环 i=%dn, i ); continue; getch(); printf(n循环结束!n);,break,int i; for( i = 0 ; i 2 ; i + ) printf(循环 i=%dn, i ); break; getch(); printf(n循环结束!n);,for的再说明,for( printf(loopstartn); printf(loopingn); printf(next loopn) ) getch(); 条件表达式不一定必须是关系表达式(不推荐。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值