乘法口诀表我们并不陌生,从小学开始就一直背了,那么用C语言如何让输出呢?
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
......
如上所示,我们可以归纳为j*i=n,其中j不断增大,直到等于i,那么我们可以想到用两个for循环来解决,第一个是关于i的,范围为[1,10],j另外讨论,看下面代码
#include int main()
{
int i = 0;
for (i = 1; i < 10; i++)
{
int j = 0;
for (j = 1; j < 10; j++)
{
printf("%d*%d=%-2d ",j,i,i*j);
}
printf("\n");
}
return 0;
}
输出结果为
可以看出这是一个矩形,我们要取的是它的左下边部分,代码如下:
for (i = 1; i < 10; i++)
{
int j = 0;
for (j = 1; j <= i; j++)
{
printf("%d*%d=%-2d ", j, i, i*j);
}
printf("\n");
}
结果:
这就是我们常见的乘法口诀表,那么,如果要输出矩形的其他部分呢?
左上边部分代码:
for (i = 1; i < 10; i++)
{
int j = 0;
for (j = 1; j < 10; j++)
{
if (j > 10-i)
printf(" ");
else
printf("%d*%d=%-2d ", j, i, i*j);
}
printf("\n");
}
结果:
右下边部分代码:
for (i = 1; i < 10; i++)
{
int j = 0;
for (j = 1; j < 10; j++)
{
if (j < 10-i)
printf(" ");
else
printf("%d*%d=%-2d ", j, i, i*j);
}
printf("\n");
}
结果
右上边部分代码:
for (i = 1; i < 10; i++)
{
int j = 0;
for (j = 1; j < 10; j++)
{
if (j < i)
printf(" ");
else
printf("%d*%d=%-2d ", j, i, i*j);
}
printf("\n");
}
结果