首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言問答

如何高效學好 C 語言:從楊輝三角打印談起

     編輯:C 語言問答

學習 C 語言的核心心法

學好 C 語言沒有捷徑,核心在於 「多寫代碼、多看代碼、多調試」。建議採取以下步驟:

  1. 夯實基礎:系統學習語法、數據類型、控制結構、函數、指針、結構體等核心概念。
  2. 刷經典題目:如楊輝三角、冒泡排序、鏈表操作、文件讀寫等,強化邏輯思維。
  3. 參考優秀教材:推薦《C程序設計》(譚浩強)、《C Primer Plus》、《C專家編程》。
  4. 善用調試工具:學會用 IDE(VS Code、CLion、Visual Studio)設置斷點、單步執行、觀察變量。
  5. 做項目實戰:嘗試寫簡易計算器、學生管理系統、貪吃蛇遊戲等完整小項目。

實戰演練:楊輝三角雙格式打印

題目要求:設計函數 void yanghui(int a[][], int n, char mode),n 控制行數,mode 控制格式('a' 直角三角,'b' 等腰三角)。

核心代碼實現

#include <stdio.h>
#include <stdlib.h>

void yanghui(int **arr, int n, char mode) {
    // 生成楊輝三角數據
    for (int i = 0; i < n; i++) {
        arr[i][0] = arr[i][i] = 1;
        for (int j = 1; j < i; j++) {
            arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
        }
    }

    // 打印邏輯
    if (mode == 'a') { // 直角三角
        for (int i = 0; i < n; i++) {
            for (int j = 0; j <= i; j++) {
                printf("%-4d", arr[i][j]);
            }
            printf("\n");
        }
    } else if (mode == 'b') { // 等腰三角
        for (int i = 0; i < n; i++) {
            // 打印前導空格
            for (int s = 0; s < n - i - 1; s++) printf("   ");
            for (int j = 0; j <= i; j++) {
                printf("%-6d", arr[i][j]);
            }
            printf("\n");
        }
    }
}

int main() {
    int n; char mode;
    printf("請輸入行數(1-10)與模式(a/b): ");
    scanf("%d %c", &n, &mode);

    // 動態分配二維數組
    int **arr = (int **)malloc(n * sizeof(int *));
    for (int i = 0; i < n; i++) arr[i] = (int *)calloc(n, sizeof(int));

    yanghui(arr, n, mode);

    // 釋放內存
    for (int i = 0; i < n; i++) free(arr[i]);
    free(arr);
    return 0;
}

關鍵技術點解析

  • 動態二維數組:使用 malloc/calloc 分配連續行指針,每行再分配列內存,靈活適應不同行數。
  • 楊輝三角生成規律:邊緣為 1,內部元素 = 左上 + 正上。
  • 格式化輸出:%-4d 左對齊固定寬度,配合空格實現等腰對齊。
  • 內存管理:用完必須 free,避免洩漏。

避坑指南

  • 靜態數組 int a[10][10] 限制最大行數,動態分配更通用。
  • scanf("%d %c", ...) 中間空格會跳過換行符,否則 %c 讀到殘留的 \n。
  • 等腰三角前導空格數 = (n - i - 1) * 每個數字佔寬。

總結

通過楊輝三角這一經典例題,涵蓋了 數組操作、函數封裝、動態內存、格式化輸出、邏輯分支 等 C 語言核心技能。建議將代碼敲三遍:第一遍照著敲,第二遍嘗試修改格式,第三遍從頭寫出。堅持每天一題,三個月質變。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved