HDU 2087 剪花布條:KMP 算法求最大不重疊子串出現次數
題目大意 給定「花布條」主串 S 與「小飾條」模式串 T(均由可見 ASCII 字元組成,長度 ≤ 1000),求從 S 中最多能剪出多少個不重疊的 T。輸入以
C 編譯器剖析:中間代碼生成與優化——基於偏移量訪問陣列元素與結構體成員
本文屬於「C 編譯器剖析」系列,聚焦中間代碼生成階段如何將高層陣列/結構體訪問轉換為基於基址加偏移的低層操作。 核心問題:高層語法到低層位址的映射 原始碼:
C 語言判斷字串是否為數字:支援整數、十六進制與浮點數的完整實現
問題背景 看似簡單的「判斷字串是否為數字」,實則需處理正負號、前導零、十六進制前綴、小數點、科學計數法等細節。標準庫 strtod/strtol 雖可用,但行為
C 語言文件操作完整指南:模式、函數族與實戰範例
一、文件指標與打開模式 C 語言透過 FILE * 指標操作文件。fopen() 返回文件指標,失敗返回 NULL。 12 種打開模式速查表 模式含義 rt
PAT 甲級 1040 Complete Binary Search Tree:構建完全二叉搜尋樹並輸出層序遍歷
題目大意 給定 N(≤1000)個互不相同的非負整數鍵值,構建一棵完全二叉搜尋樹(CBST): 滿足 BST 性質:左子樹鍵值 < 根 < 右子樹
PAT 甲級 1030 Tree Traversals Again:堆疊序列重建二叉樹並輸出後序遍歷
題目大意 給定一棵 N 節點(1~N 編號)二叉樹的中序遍歷過程中堆疊操作序列(Push X / Pop),該序列唯一確定一棵二叉樹。要求輸出該樹的後序遍歷序列
C語言指針進階:數組指針與指針數組的本質區別
一張圖搞懂「數組指針」vs「指針數組」 C 語言中 int (*p)[10] 和 int *p[10] 只差一對括號,卻代表完全不同的類型。本文從內存佈局、運算
圖的連通分量:DFS 與 BFS 雙重遍歷輸出(鄰接矩陣壓縮存儲)
無向圖連通分量查找:深度優先與廣度優先遍歷完整實現 給定無向圖(頂點 0~N-1,邊數 E),要求按頂點索引升序輸出所有連通分量,分別用 DFS 和 BFS 遍
APUE 學習筆記(三):深入 Linux 文件與目錄元數據操作
APUE 讀書筆記第 3 章:文件系統元數據完整指南 前兩篇介紹了文件 I/O 基礎操作,本章聚焦文件系統為每個文件維護的元數據——即 struct stat
C語言除錯實戰:快速定位程式錯誤的三大類別與技巧
C語言新手除錯指南:從混亂到有序的錯誤排查法 剛學 C 語言時,程式跑不通、跑出錯誤結果是常態。盲目修改代碼往往越改越錯。本文將常見錯誤分為三大類——邏輯錯誤、
杭電 ACM 2021 練習題:找零錢問題的貪心解法
杭電 OJ 經典題目:找零錢最少硬幣數 這是一道典型的貪心算法練習題(杭電 2021 相關練習)。給定金額,使用面額 100、50、10、5、2、1 的硬幣找零
浮點數比較陷阱:為什麼不能用 == 判斷零值?
浮點數比較問題:正確判斷 float 是否為零 在 C/C++ 開發中,直接使用 x == 0 判斷浮點數是否為零是極其危險的常見錯誤。這篇文章深入解析浮點數表
C語言實作貪吃蛇遊戲(彩色版)完整代碼解析
C語言貪吃蛇彩色版:從零打造經典遊戲 貪吃蛇是程式設計入門的經典練習題,透過這個專案可以熟悉圖形介面程式設計、鍵盤事件處理、遊戲迴圈邏輯以及資料結構的運用。本文
Windows Native C 程式設計(八):結構體、聯合體、列舉、typedef 詳解
結構體 定義與宣告 struct Birthday { int year, month, day; }; struct Employee { int
C 語言程式結構三大支柱:循序、選擇、迴圈完整指南
一、循序結構 語句按撰寫順序自上而下執行,無分支、無跳轉。 範例:三角形面積 #include <stdio.h> int main(void) {
Linux 環境下 C 語言開發入門:從原始碼到執行檔完整流程
為什麼選 Linux 學 C? GCC/Clang 編譯器標準支援度最高 終端機、腳本、管線、重導向等工具鏈極其強大 系統呼叫、程序、執行緒、網路程式設計原生
PAT 圖論題「Saving James Bond」:DFS 判斷鱷魚池逃生路徑
題目大意 詹姆斯·邦德被困在湖中心小島 (半徑 7.5m,即直徑 15m),湖為 100×100 正方形 (中心 (0,0),邊界 ±50)。湖中有 N ≤ 1