Lesson-6.md
January 4, 2013 · View on GitHub
Lesson 6 Print 9*9 multiplication table 乘法表
代码
#include <stdio.h>
int main(void)
{
int i, j;
for (i = 1; i < 10; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d*%d=%d\t", j, i, i * j);
}
printf("\n");
}
return 0;
}
Output:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
知识点
- 嵌套循环语句 for-for
- 二层逻辑嵌套
扩展
#include <stdio.h>
int main(void)
{
int i, j;
for (i = 1; i < 10; i++)
{
for (j = 1; j < 10; j++)
{
if (j > i)
break;
printf("%d*%d=%d\t", j, i, i * j);
}
printf("\n");
}
return 0;
}
知识点
- break 用法
- continue 用法
课堂讨论
- 列举出5种场合,可以用 for-for 两重循环来解决的?
- 示例中的 { } 是必须的吗,如果去掉内层或外层的 { } ,会有什么问题?
- 如果用 while-while 两重循环来编写这个程序,如何实现?
课后练习
- 打印1个5*5的棋盘(0表示空,1表示有子),用户输入1个位置(例如 2 3),重新打印棋盘。
- 一个数各个约数(真约数)的和等于它本身的自然数叫做完全数(Perfect number)。
(例如:6 = 1 + 2 + 3) 请找出1-1000以内的完全数。 - 一个 n 位数 ( n≥3 ) 每个位上的数字的 n 次幂之和等于它本身的数叫做水仙花数。
(例如: + + = 153) 请找出 n = 3 的水仙花数。