思路
因为九九乘法表是一个矩阵,涉及两个维度,所以要有两个变量 i,j 分别表示行和列两个维度。
因为涉及两个维度,行要循环,列也要循环,所以涉及循环嵌套。
因为列数会随着行号变化,因此行先变化,为外层循环;行固定时,列再变化,为内层循环。
注意不同形状的三角形,需要不同的判断条件来输出九九乘法表,尤其要注意右下三角形。
输出完整的九九乘法表 -- for 循环
1 #include <stdio.h> 2 3 int main() 4 { 5 int i, j; 6 for (int i = 1; i < 10; i++) 7 { 8 for (int j = 1; j < 10; j++) 9 { 10 printf("%d*%d=%-4d", i, j, i * j); 11 } 12 printf(" "); //一行输出后,换行 13 } 14 return 0; 15 }
输出完整的九九乘法表 -- while 循环
1 #include <stdio.h> 2 3 int main() 4 { 5 int i = 1; 6 while (i<10) 7 { 8 int j = 1; // j 的初始化要在外部循环内部,保证每一行都从第一列开始循环 9 while (j<10) 10 { 11 printf("%d*%d=%-4d", i, j, i * j); 12 j++; 13 } 14 printf(" "); 15 i++; 16 } 17 return 0; 18 }
输出左下三角九九乘法表 -- for 循环
1 #include <stdio.h> 2 3 int main() 4 { 5 int i, j; 6 for (int i = 1; i < 10; i++) 7 { 8 for (int j = 1; j <= i; j++) //左下三角,行号>=列号 9 { 10 printf("%d*%d=%-4d", i, j, i * j); 11 } 12 printf(" "); 13 } 14 return 0; 15 }
输出右下三角九九乘法表 -- for 循环
1 #include <stdio.h> 2 3 int main() 4 { 5 int i, j, n; 6 for (int i = 1; i < 10; i++) 7 { 8 for (int n = 1; n <= 9 - i; n++) //这里有两个for 循环并列,先执行第一个for循环,等这个循环跳出,才执行第二个for循环
9 { 10 printf(" "); //八个空格,对应应该输出的字符串长度 11 } 12 for (int j = 1; j <= i; j++) 13 { 14 printf("%d*%d=%-4d", i, j, i * j); 15 } 16 printf(" "); 17 } 18 return 0; 19 }
输出左上三角九九乘法表 -- for 循环
1 #include <stdio.h> 2 3 int main() 4 { 5 int i, j, n; 6 for (int i = 1; i < 10; i++) 7 { 8 for (int j = 1; j < 10; j++) 9 { 10 if (j<=10-i) 11 { 12 printf("%d*%d=%-4d", i, j, i * j); 13 } 14 else 15 { 16 printf(" "); 17 } 18 } 19 printf(" "); 20 } 21 return 0; 22 }
输出右上三角九九乘法表 -- for 循环
1 #include <stdio.h> 2 3 int main() 4 { 5 int i, j, n; 6 for (int i = 1; i < 10; i++) 7 { 8 for (int j = 1; j < 10; j++) 9 { 10 if (i<=j) 11 { 12 printf("%d*%d=%-4d", i, j, i * j); 13 } 14 else 15 { 16 printf(" "); 17 } 18 } 19 printf(" "); 20 } 21 return 0; 22 }