C语言:九九乘法表解析及程序逻辑分析

学习C语言应该是大多数人接触编程的第一步,在编程语言中,循环和判断是两个最重要的逻辑语法。很多同学刚开始学习c语言的时候,对于循环很难理解。有的同学能够课本上的程序。但自己不能够编写出带有循环的程序。

学习for循环时一个常见的例子就是九九乘法表。因为它用到了一个双循环,里面还用到了if判断,逻辑上稍微复杂了点,对于初学者来说,比较难理解。记得笔者当初学习的时候,似乎是一直惦记着这个程序有两个星期左右,才逐渐理解,而且还不是很透彻,随着时间流逝,才慢慢加深了对其的理解程度。下面我们从九九乘法表的程序中解析循环在程序中是如何起作用的以及该如何把握程序的逻辑。

笔者当初接触的九九乘法表程序不知道是谁编写的,在书上打印出来排版很难看,这似乎也是阻碍我们理解的原因。下面是我自己写的一个程序:

#include
int main(void){
//九九乘法表
int i,j;
printf(" ");//打印两个空格对齐数字
for(i=1;i<=9;i++){//打印最上方的1-9数字
printf("%4d",i);
}
printf("\n-------------------------"
"-----------------------\n");//打印上方的横线
for(i=1;i<=9;i++){//控制行
for(j=0;j<=9;j++){//控制列
if(j==0){//每行的前面要显示1-9数字 和竖线
printf("%d|",i);
}else{//这里是乘法的逻辑
printf("%4d",i*j);
}
}
printf("\n |\n");//打印完一行就换行
}
}

这里面用到了printf的格式控制符,让打印出的界面排版更好看。这样我们才好分析。

首先我们看一下编译运行的效果:

乘法表

分析

C语言是自上而下顺序执行的,所以我们在编写程序的时候,也是自上而下一步步写的。

编写一个程序之前,我们必须要知道我们具体要干什么,需要达到什么样的一个效果。就这个程序而言,我们需要知道九九乘法表的结构,知道它是什么样子,它至少分为两个部分,第一部分是第一行和第一列的1到9的基准数字,第二部分是乘法表的内容部分。

我们目前能够知道的C语言的printf函数,它的打印方式都是按照行打印的,一行一行的打印,而不是一列一列的打印,因此,我们目前只能按照行去打印这个表格。

那么,第一行很好打印,先打印前方的空格部分,然后依次打印1至9的数字。这一行可以用一个for循环打印,很好理解。然后换行打印一条横线,没啥用,看着好看而已。

下面是一个难点,双层for循环可以打印乘法表的内容部分,要注意的就是第一列的1至9数字如何在乘法结果前面打印,在这里,我们将内层控制列的循环多加一列,外层从1至9,内层从0至9,那么,0就表示第一列,我们在循环里面用了一个if判断是不是0列,如果是的话就打印数字和一个竖线,数字需要1至9,而外层i就是从1至9变化的,所以我们直接打印外层变量i的值就可以了。

在if判断的else部分,就是乘法表的逻辑显示区域了,此时,内外层变量都是从1递增到9,因此,我们只需要将内外层i和j变量相乘就可以得到结果。

最后要注意,我们每打印一行都要换行,在这里,为了好看,我换了两行,换行的地方需要在一行打印完毕之后,那么就是在内层循环结束之后打印换行即可,因为内层循环就是打印行的,循环结束,一行也就结束,在后面打印换行非常符合逻辑。

 

本文系小博客网站原创,转载请注明文章链接地址

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值