C語言:九九乘法表解析及程序邏輯分析

學習C語言應該是大多數人接觸編程的第一步,在編程語言中,循環和判斷是兩個最重要的邏輯語法。很多同學剛開始學習c語言的時候,對於循環很難理解。有的同學能夠課本上的程序。但自己不能夠編寫出帶有循環的程序。

學習for循環時一個常見的例子就是九九乘法表。因為它用到了一個雙循環,裡面還用到了if判斷,邏輯上稍微複雜了點,對於初學者來說,比較難理解。記得筆者當初學習的時候,似乎是一直惦記著這個程序有兩個星期左右,才逐漸理解,而且還不是很透徹,隨著時間流逝,才慢慢加深了對其的理解程度。下面我們從九九乘法表的程序中解析循環在程序中是如何起作用的以及該如何把握程序的邏輯。

<code>#include<stdio.h>
int main(void){
\t//九九乘法表
\tint i,j;
\tprintf(" ");//打印兩個空格對齊數字
\tfor(i=1;i<=9;i++){//打印最上方的1-9數字
\t\tprintf("%4d",i);
\t}
\tprintf("\\n-------------------------"
\t"-----------------------\\n");//打印上方的橫線
\tfor(i=1;i<=9;i++){//控制行
\t\tfor(j=0;j<=9;j++){//控制列
\t\t\tif(j==0){//每行的前面要顯示1-9數字 和豎線
\t\t\t\tprintf("%d|",i);
\t\t\t}else{//這裡是乘法的邏輯
\t\t\t\tprintf("%4d",i*j);
\t\t\t}
\t\t}
\t\tprintf("\\n |\\n");//打印完一行就換行
\t}
}/<stdio.h>/<code>

這裡面用到了printf的格式控制符,讓打印出的界面排版更好看。這樣我們才好分析。

首先我們看一下編譯運行的效果:

C語言:九九乘法表解析及程序邏輯分析

分析

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變量相乘就可以得到結果。

最後要注意,我們每打印一行都要換行,在這裡,為了好看,我換了兩行,換行的地方需要在一行打印完畢之後,那麼就是在內層循環結束之後打印換行即可,因為內層循環就是打印行的,循環結束,一行也就結束,在後面打印換行非常符合邏輯。



分享到:


相關文章: