在屏幕上输出九九乘法表
上图来源于网络(侵权请联系)
分析:一共有九列九行,我们是不是可以这样打印。
int main()
{
int i = 0,j=0;
for(i=1;i<10;i++)
{
for (j = 1; j < 10; j++)
printf("%d*%d=%d ", i, j, j * i);
printf("\n");
}
return 0;
}
经过测试发现此算法不能实现,我们来具体分析:
由此我们发现每执行一次外循环都要执行九次内循环。
改进后的算法
int main()
{
int i = 0,j=0;
for(i=1;i<10;i++)
{
for (j = 1; j <=i ; j++)//将小于10改成小于等于
printf("%d*%d=%d ", i, j, j * i);
printf("\n");
}
return 0;
}
我们来在具体分析:
当我们把小于10改成小于等于i,之后每执行一次外循环,内循环次数就会为外循环的i的值,而不是每次都是执行九次;如次我们只需改变外循环次数便可以打印出任意i*i乘法表。
int main()
{
int i = 0,j=0;
for(i=1;i<=20 ;i++) /* ### i<=20 ### */
{
for (j = 1; j <= i; j++)
printf("%d*%d=%d ", i, j, j * i);
printf("\n");
}
return 0;
}