九九乘法表是循環嵌套的經典教學案例。本文以 C 語言為主線,涵蓋 PAT 基礎編程題目標準解、VB 單循環技巧、C# 雙重循環實現,幫助你掌握輸出格式控制、循環邊界處理及跨語言思維遷移。
j*i=結果,項目間用 \t 分隔,每行末尾換行#include <stdio.h>
int main(void) {
int N;
scanf("%d", &N);
for (int i = 1; i <= N; i++) { // 控制行:1 到 N
for (int j = 1; j <= i; j++) { // 控制列:1 到 i
printf("%d*%d=%d\t", j, i, j * i);
}
printf("\n"); // 行末換行
}
return 0;
}
| 要素 | 說明 | 易錯點 |
|---|---|---|
| 外層循環 | i = 1; i <= N; i++ | 邊界條件用 <= 而非 < |
| 內層循環 | j = 1; j <= i; j++ | 上限隨行號變化,體現三角形結構 |
| 格式控制 | \t 制表符對齊 | 末項後無需 \t,但無害 |
| 輸入處理 | scanf("%d", &N) | 必須取地址 &N |
利用 Tab 定位模擬表格佈局,僅用一層循環完成打印:
Private Sub Form_Click()
Dim i, j, k As Integer
Print String(100, "*")
Print Tab(45); "九九法則"
Print String(100, "*")
' 打印列標題 0-9
For i = 0 To 9
Print Tab(i * 8); i;
Next i
Print
' 打印乘法表主體
For j = 1 To 9
Print j; ' 行首標籤
For k = 1 To j
Print Tab(k * 8); j & "X" & k & "=" & j * k;
Next k
Print
Next j
End Sub
核心思想: 通過座標計算(Tab(k * 8))直接定位輸出位置,將二維邏輯映射到一維輸出流。
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
Console.Write(j + "*" + i + "=" + j * i + "\t");
}
Console.WriteLine();
}
Console.ReadLine();
語法差異: Console.Write 不換行,Console.WriteLine 換行;字符串拼接用 + 運算符。
printf("%2d*%2d=%2d\t", j, i, j*i) 固定寬度j <= 9,條件輸出 if (j <= i)i = N; i >= 1; i--stdout 重定向或用 fprintf 寫入文件| 語言 | 循環關鍵字 | 塊標記 | 輸出函數 | 格式化 |
|---|---|---|---|---|
| C | for/while/do-while | { } | printf | %d %s \t \n |
| VB6 | For/Next | 無(縮進) | Tab(); & 拼接 | |
| C# | for/foreach/while | { } | Console.Write/Line | + 拼接 / $插值 |
| Python | for/while | 縮進 | print() | f-string / format |
九九乘法表看似簡單,實則蘊含「邊界控制、格式化輸出、巢狀邏輯」三大編程核心能力。建議動手實現 C/C#/Python 三個版本,體會語法糖背後的統一計算模型,培養「一通百通」的遷移能力。