1.左下角式
#include<stdio.h>
int main()
{
int i=0,j=0;
for(i = 1;i <= 9; i++)
{
for(j = 1; j <= i; j++)
printf("%d*%d=%d ", i, j,i * j)
printf("\n");
}
return 0;
}
运行结果如下图所示:
注意:for(初始化部分1;条件部分2;调整部分3)
1只在循环开始时执行一次,2在循环体每次执行前都要执行一次,3在循环体每次执行完毕,在条件部分即将执行之前执行
i代表*前面的数,j代表*后面的数,且i不大于9,j不大于i,刚好满足99乘法表的所有乘数。
接下来,我们开始执行程序
第一次 (外层for循环)i=1,j=1,(嵌套for循环)且j<=i,i=1*j=1,打印结果;
第二次(外层for循环)i++,即i=2,(嵌套for循环)第一次j=1,且j<=i,i=2*j=1
第二次j<=i,j++,j=2,i=2*j=2
.........一直按照这样的思路循环下去
2.右下角式
#include<stdio.h>
int main()
{
int i = 0, j = 0;
for (i = 1; i < 10; i++)
{
for (j = i; j >= i && j < 9; j++)
{
printf("\t");
}
for (j = 1; j <= i; j++)
{
printf("%d*%d=%d\t", i, j, i * j);
}
printf("\n");
}
return 0;
}
运行结果如下图所示:
1.\t,跳过8个空格,从第八个位置结束,从第九个位置开始。
2.若前面的字节<=7,从第8个位置结束,从第9个位置开始。
3.若前面有8个字符,则从第16个位置结束,从第17个位置开始。
---出处作者j352992161
左下角式和右下角式基本代码都差不多,与左下角式不同的是,先打印空格,再打印数乘。\t的作用在上述中已介绍。
3.左上角式
#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=%d\t", i, j, i * j);
}
printf("\n");
}
return 0;
}
运行结果如下图所示:
要想打印出这样的左上角式,首先我们可以发现,它和左下角式相比较,左上角式的第一个乘数都<=第二个乘数,所以不能再使用 j <= i 这个表达式。
1.因为 j 大,则需对 j 进行约束,即 j <= 9.
2.需要对 i 和 j 做比较,则用到 if 语句,必须满足 j >= i .
其他条件不变,按照原来思路进行循环,即可得出结果。
4.右上角式
#include<stdio.h>
int main()
{
int i, j;
for (i = 1; i <= 9; i++)
{
for (j = 2;j <= i; j++)
{
printf("\t");
}
for (j = i; j >= i && j <= 9; j++)
{
printf("%d*%d=%d\t", i, j, i * j);
}
printf("\n");
}
return 0;
}
等腰三角形式
#include<stdio.h>
int main()
{
int a=0,b=0,c=0;
for(a=9;a>=1;a--)
{
for(c=0;c<=(8-a)*4;c++)
{
printf(" ");
}
for(b=1;b<=a;b++)
printf("%d*%d=%2d",a,b,a*b);
printf("\n\n");
}
return 0;
}