C 語言學習的最佳捷徑是動手敲代碼。本文提供兩個經典入門程序——九九乘法表輸出與 100 以內素數篩選,代碼規範、邏輯清晰,適合初學者研讀、修改、擴展。
利用雙層嵌套循環,外層控制行(被乘數 1~9),內層控制列(乘數 1~行號),格式化輸出每個乘法算式。
#include <stdio.h>
int main(void) {
printf("九九乘法表\\n");
for (int i = 1; i <= 9; ++i) {
for (int j = 1; j <= i; ++j) {
printf("%d×%d=%-3d ", j, i, j * i); // %-3d 左對齊佔3寬,對齊美觀
}
putchar('\\n');
}
return 0;
}
關鍵點:
j <= i 實現下三角輸出;%-3d 保證結果欄寬固定、左對齊,列對齊整齊;putchar('\\n') 比 printf("\\n") 更輕量。將判斷素數邏輯封裝為 isPrime 函數,主流程調用 allPrimes 遍歷輸出,展示模塊化設計思想。
#include <stdio.h>
#include <stdbool.h> // C99 引入 bool 類型
// 判斷素數:優化至 sqrt(n)
bool isPrime(int n) {
if (n <= 1) return false;
if (n <= 3) return true; // 2, 3 是素數
if (n % 2 == 0 || n % 3 == 0) return false; // 排除 2、3 的倍數
// 6k±1 優化:素數必在 6k±1 形式(k≥1)
for (int i = 5; i * i <= n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0)
return false;
}
return true;
}
void allPrimes(int low, int high) {
for (int i = low; i <= high; ++i) {
if (isPrime(i))
printf("%d ", i);
}
putchar('\\n');
}
int main(void) {
printf("100 以內的素數:\\n");
allPrimes(1, 100);
return 0;
}
進階優化說明:
sqrt(n),因若 n = a×b 則至少一因子 ≤ sqrt(n)。i 和 i+2,減少 2/3 迭代。這兩個範例雖簡單,但涵蓋了循環控制、函數封裝、格式化輸出、算法優化等核心技能。建議初學者:手敲、跑通、改參數、觀察輸出、再優化,養成「代碼即文檔、邏輯清晰可驗證」的良好習慣。