从乘法口诀表开始吧:
实现乘法的算法很简单,我们大家都知道怎么实现,所以这个问题所以的考察的要点有两点,一是for循环的运用,二是换行符的使用,如果大家还有疑问,我们不妨先看下程序再来看看是不是还有疑问。
------------------------------
#include <stdio.h>
int main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf("%d*%d=%d\t",j,i,j*i);
printf("\n");
}
}
-----------------------------------
程序的设计很简单,不过这其中包含了一个要给大家说的知识点,那就是嵌套循环,这里的嵌套循环就是一个for循环里面又套了一个for循环,嵌套循环的要旨没什么难理解的,就是从外入内又从内入外,为什么什么这么说呢?因为每一个循环都得从最外的循环开始进入,然后执行内部循环,把内部循环执行完成之后,又重新回到外部循环进行下一项,再进入内部循环,所以这样无休无止的循环直到把最外层循环执行完成之后才会退出循环。
上面的例子中,当函数执行到第一个for处,i=1,然后进入第二个循环,因为第二个循环用了第一个循环传递进来的i做参数,所以第二个循环j执行到1时便结束了第二个循环,这里就是1*1 = 1,这个时候我们要做的是要换行,但是换行不能用用在第二个循环里面,而要在第一个循环里面来执行,当然有疑惑的同学可以试着把第二循环写成下面这样来运行一下看看结果:
---------------------------
for(j=1;j<=i;j++)
printf("%d*%d=%d\t\n",j,i,j*i);
-----------------------------
然后把下面的printf("\n")给注释起来,说到注释,又得说一下,如果大家不想要某一行代码参与运行,可以在这行代码前添加两条斜杠"\\”,当然大家也可以在某行代码的后面添加注释,标明改行代码是干嘛的,这些注释前代码的分号后面记得要加上双斜杠。如果想要把某段代码全部注释起来呢?当然也可以每一行前面添加双斜杠,但还有一个更简单的方法,那就是用单斜杠搭配*号来围起来,怎么围呢?就是正反来一个就好了,像这样即可:
--------------------------------
/*-----------------------
需要注释起来的代码段
------------------------*/
--------------------------------
还是回到上面的问题,如果我们把打印换行的那一句给注释起来,大家是不是发觉打印出来的东西特么的别扭,所以,这个例子不光考察了大家对循环的理解,还同时考察了大家对换行符的使用,好吧,说到这里,想必大家都应该清楚了,我们现在来看下输出:
若是换成“\n”输出的话,可以这样写:
大家是不是看到每一列都很完整的对齐?这就是有人疑惑的那个\t的功劳了,\t上一讲我们说了,这是一个水平制表符,他的作用就是水平跳几个空格,保证每一列都能够实现左对齐。乘法口诀表就到这里吧。
先留个问题吧:输入两个正整数m和n,求其最大公约数和最小公倍数。
明天这里多举些循环的经典例子。