
1,确定每一行何时结束
2,确定该定义哪些变量(i,j)
3,确定变量该如何取值(1~9)
代码如下:
#include<stdio.h>
int main()
{
for (int i = 1;i <= 9;i++)
{
for (int j = 1; j <= 9; j++)
printf("%d*%d=%d", i, j, i * j);
}
return 0;
}
运行结果:
如何优化?

在这句代码中,把9换为i,打印的时候就符合九九乘法表了,再在末尾加上换行,代码如下:
#include<stdio.h>
int main()
{
for (int i = 1;i <= 9;i++)
{
for (int j = 1; j <= i; j++)
printf("%d*%d=%d", i, j, i * j);
printf("\n");
}
return 0;
}
运行结果:

再度优化:

1,%d后加一个空格。%d变为%2d。
%2d(使输出的int型的数值以2位的固定位宽输出)
2,i与j交换位置。
完整代码如下:
#include<stdio.h>
int main()
{
for (int i = 1;i <= 9;i++)
{
for (int j = 1; j <= i; j++)
printf("%d*%d=%2d ", j, i, i * j);
printf("\n")
;
}
return 0;
}
运行结果:
