多个循环控制变量的三种情况-3 for(i=1:i<=9:i++) printf( i=y2d\n",i: for〔j=1:j<=9:j*+) prnf("i=‰2dj=‰2dn"i〕);i=3 m每个输出语句各执行了9次, 共9+9=81次 i=10j=1 两个循环控制变量各自分 i=10j=2 别控制各自的循环语句的执 1=10j=3 行次数,互不干涉。 10ⅰ=9
6 多个循环控制变量的三种情况-3 for (i=1; i<=9; i++) printf(" i=%2d\n",i); for (j=1; j<=9; j++) printf(" i=%2d j=%2d\n",i,j); i=1 i=2 i=3 ... i=9 i=10 j=1 i=10 j=2 i=10 j=3 ... i=10 j=9 ▪每个输出语句各执行了9次, 共9+9=81次 ▪两个循环控制变量各自分 别控制各自的循环语句的执 行次数,互不干涉
例4-27 for(i=1:i<2:i++):° 再加个分 for〔j=1:j<2:j+) 再加个分 号呢 for〔j=1:j<2:j*+)° printf(" %d, %d, %d\n", i,j, k) 000 00120 01020 011 0101 220 221 222 0021 101 10 111 !!加分号与不加分号不同。 7
7 例4-27 for (i=1; i<2; i++) for (j=1; j<2; j++) for (j=1; j<2; j++) printf(" %d,%d,%d\n",i,j,k); •结果为? ; ; •加个分号 会怎样? 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 2 0 0 2 0 1 2 1 0 2 1 1 •再加个分 号又会怎样? 2 2 0 2 2 1 ; •再加个分 号呢? 2 2 2 !!加分号与不加分号不同
记住:编程的步骤!!! 分析问题 逐步求精地写算法(请记住P77页图4-2) 写程序(请严格按照附录C的语法格式书写) 调试程序
8 记住:编程的步骤!!! ▪ 分析问题 ▪ 逐步求精地写算法(请记住P77页图4-2) ▪ 写程序(请严格按照附录C的语法格式书写) ▪ 调试程序
作业讲评 判断0-100之间有多少个完数。 完数: 所有因子的和等于它本身 例如:1+2+3=6 整体思路?? for(i=1:<=100;i++) 如果是完数,输出“i是完数”,并将计数器加1 输出完数的个数
9 作业讲评 ▪ 判断0-100之间有多少个完数。 ▪ 完数: ▪ 所有因子的和等于它本身 ▪ 例如:1+2+3=6 ▪ 整体思路?? for(i=1;i<=100;i++) {如果i是完数,输出“i是完数”,并将计数器加1 } 输出完数的个数
厂 counter=O,i=1 分析过程:逐步求精 SU= 判断是否为的因子, 是的话累加,j N Y 判断与sum是否相等,是的话 输出i同时 counter加1;i++ Y i<=100? 输出 counter 10
10 Y N i<=100? 输出counter counter=0,i=1 如果 i是完数,输出 “ i是完数 ” , 并将计数器加1 i++ 判断 i 与sum是否相等 ,是的话 输出i,同时counter 加1;i++ 求 i的因子之和sum Y N sum=0,j=1 判断 j是否为 i的因子, 是的话累加,j++ j<=i? 分析过程:逐步求精