第一种方法
使用嵌套循环
#include<stdio.h> int main() { int i, j; for(i = 1; i <= 9; i++) { for(j = 1; j <= i; j++) { printf("%d*%d=%-2d ", j, i, i * j); } printf("\n"); } return 0; }
讲解
外层循环控制行数,变量i从1开始递增,直到9。这代表九九乘法表的行数,同时也表示乘法表的乘数。
内层循环控制每一行中的列数,变量j从1开始递增,直到i的值。这代表每一行中的乘数。在内层循环中,使用printf函数输出每个乘法表达式,%d表示整数的占位符,%-2d表示占位符预留两个字符的宽度,并且左对齐。循环结束后,通过printf("\n")跳到下一行,实现九九乘法表按行输出。最后,return 0表示程序正常结束。
第二种方法
使用一层循环和数学计算
#include<stdio.h> int main() { int i, j; for(i = 1; i <= 9; i++) { for(j = 1; j <= 9; j++) { if(j <= i) printf("%d*%d=%-2d ", j, i, i * j); } printf("\n"); } return 0; }
讲解
外层循环同样控制行数,变量i从1开始递增,直到9。
内层循环同样控制每一行中的列数,变量j从1开始递增,直到9。对于每一个乘法表达式,使用if(j <= i)来判断是否应该输出,如果列数j小于等于行数i,则输出该表达式。否则,跳过该表达式不输出。在内层循环结束后,通过printf("\n")跳到下一行,实现九九乘法表按行输出。同样,return 0表示程序正常结束。
第三种方法
使用一个循环和条件判断
#include<stdio.h> int main() { int i, j, n = 1; for(i = 1; i <= 9; i++) { j = 1; while(j <= i) { printf("%d*%d=%-2d ", j, i, i * j); j++; } printf("\n"); } return 0; }
讲解
外层循环同样控制行数,变量i从1开始递增,直到9。
在内层循环中,使用 while 循环,变量 j 初始值为1,在每次循环中判断j是否小于等于i,如果是,则输出当前乘法表达式。然后,j递增1,继续进行循环,直到 j 大于 i,此时内层循环结束。在内层循环结束后,通过printf("\n")跳到下一行,实现九九乘法表按行输出。同样,return 0表示程序正常结束。
第四种方法
使用两个嵌套循环和条件判断
#include<stdio.h> int main() { int i, j, n = 1; for(i = 1; i <= 9; i++) { for(j = 1; j <= n; j++) { printf("%d*%d=%-2d ", j, i, i * j); } n++; printf("\n"); } return 0; }
讲解
外层循环控制行数,变量 i 从 1 开始递增,直到 9。
内层循环控制列数,变量 j 从 1 开始递增,直到变量 n 的值。变量 n 在每次外层循环的最后增加 1,所以内层循环中打印的次数会逐渐增加。在内层循环中,使用 printf 函数输出每个乘法表达式,%d 表示整数的占位符,%-2d 表示占位符预留两个字符的宽度,并且左对齐。循环结束后,通过 printf("\n") 跳到下一行,实现九九乘法表按行输出。最后,return 0 表示程序正常结束。