題目一 : 印出九九乘法表
題目二 : 印出KK乘法表
題目三 : 印出任意乘法表
.★° .★° .★° .★° .★° .★° .★° .★° .★° .★° .★°
在打教學文,再次聲明一件事情;
會想打這些,純粹是對我自己學習的一個紀錄
以及想說可以幫助到一些搜尋到這些關鍵字的人。
這些題目是我第一次上程式設計課所需要完成的作業
或許在有些學校,教授也會分配給學生"類似的作業" (畢竟蠻基本的)
---因此我很怕有些初學者會"抄襲"這些Code,直接交作業。
你可以參考,弄懂原理,甚至還是有不懂可以在下面提問
但希望不要一片好心反而誤了學習者的前途,實質的沒學會。
.★° .★° .★° .★° .★° .★° .★° .★° .★° .★° .★°
題目一 : 印出九九乘法表
--- ---
解說 :
1.
printf(" \t|\t 0\t 1\t 2\t 3\t 4\t 5\t 6\t 7\t 8\t 9\n");
printf("--------------------------------------------------------------------------------------------\n");
這裡主要是排版用。
Tab鍵在C語言裡面,要用 Printf 顯示的話是 " \t "
因為題目訂為"99乘法表",所以直接輸出1~9,並且以Tab分隔。
顯示會長這樣 :
| 0 1 2 3 4 5 6 7 8 9
--------------------------------------------------------
(我這邊Tab用空白鍵代替)
其實這邊可以用 for 迴圈來做,但是待後面講。
for(x=0 ; x<=9 ; x++)
{
printf("%d\t|",x);
for(y=0 ; y<=9 ; y++)
{
z = x*y;
printf("\t%d",z);
}
printf("\n");
}
這邊展示的是 "雙迴圈"
可能有些人會問 : 我一個迴圈都不會怎麼會雙迴圈 ?
那麼,就先來講解一迴圈吧。
--------------------------------------------------------------------------------------
for的使用方法 :
(我用的講法比較狹義,但比較好懂)
for ( i = 0 ; i < 5 ; i ++ )
{
事情;
}
--->在這個例子中
i 是for執行時的變數,
i = 0 ---> i 從 0 開始
i < 5 ; ---> i 從 0 執行到 5就會跳出迴圈 (也就是最後一個是4)
i ++ ; ---> i 每次+1 ( i ++就是 i + 1
也就是說,這個 for 迴圈在跑的時候,會跟著 i 的值,從 0,1,...,4 的值去執行。
i 在這裡只要把他當作一個"基準點"就好,0 ~ 4 是 5 個數字,所以執行 5 次。
那個 i ++ 當然也可以改成 i -- ( i 每次 -1 )
我們若寫成 i = 5;i > 1;i --
i 的值就會從 5,4,3,2 然後停住,因為要求 i > 1。
---> 也就是執行四次。
由於這個 i 值會隨時改變,所以我們可以利用這點來對"裡面做的事情"做調整。
例如 :
for ( i = 0 ; i < 5 ; i ++ )
{
printf ("數字 : %d\n", i );
}
這樣結果就會是
數字 : 0
數字 : 1
數字 : 2
數字 : 3
數字 : 4
--------------------------------------------------------------------------------
讓我們回到題目,我用的雙迴圈。
我們先把 for 裡面的第二個 for( ... ){ ... } 都先不要看
會剩下
for(x=0 ; x<=9 ; x++)
{
printf("%d\t|",x);
printf("\n");
}
這樣的輸出結果會是
0 |
1 |
2 |
...
...
9 |
那如果加入第二個迴圈後,"實際模仿一下電腦思維去看程式執行"。
假設,x現在已經跑到3了。
for(x=0 ; x<=9 ; x++) // 此時 x =3
{
printf("%d\t|",x); // 輸出是 : 3 |
for(y=0 ; y<=9 ; y++) // y 從 0 開始跑
{
z = x*y; // x = 3 y = 0 z = 3*0 = 0
printf("\t%d",z); // 輸出 : 0
} // 回到 for (y),y+1 = 1 ,還沒到9所以繼續跑
// 跑完上面的小 for 迴圈後,輸出長 : (下面一行)
// 3 | 0 3 6 9 12 15 18 21 24 27
printf("\n"); //換行
}
然後 x 會再 +1 ,一直跑到 9 為止。
這樣,就能把 99乘法表全部列出來。
.★° .★° .★° .★° .★° .★° .★° .★° .★° .★° .★°
題目二 : 印出KK乘法表
--- ---
解說 :
.★° .★° .★° .★° .★° .★° .★° .★° .★° .★° .★°
題目三 : 印出任意乘法表
--- ---
解說 :
沒有留言:
張貼留言