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

C語言小工具集錦:動態時鐘與猜數字遊戲

     編輯:關於C

工具一:終端動態時鐘

核心思路

  • time(0) 獲取當前時間戳(秒數)。
  • 模運算分解時分秒:s = t%60、m = t%3600/60、h = (t%(86400)/3600 + 8)%24(東八區)。
  • printf("%02d:%02d:%02d\\r", h, m, s):\\r 回車符使光標返回行首,實現原地刷新。
  • fflush(stdout) 強制刷新輸出緩衝區。
  • while(t == time(0)); 忙等待直到下一秒到來。

完整代碼

#include \
#include \

int main() {\
    int h, m, s, t;\
    while (1) {\
        t = time(0);\
        s = t % 60;\
        m = t % 3600 / 60;\
        h = (t % 86400 / 3600 + 8) % 24;\
        printf("%02d:%02d:%02d\\r", h, m, s);\
        fflush(stdout);\
        while (t == time(0));\
    }\
    return 0;\
}

運行效果

動態時鐘截圖

工具二:猜數字遊戲

核心邏輯

  • srand(time(0)) 以當前時間為種子初始化隨機數生成器。
  • rand() % 100 生成 0-99 隨機數。
  • 循環讀取用戶輸入,提示「太大/太小」,計數猜測次數。
  • 猜中輸出次數並退出。

完整代碼

#include \
#include \
#include \

int main() {\
    int data = 0, count = 0;\
    srand(time(0));\
    data = rand() % 100;\
    printf("猜數游戲:(0~100)\\n");\
    while (1) {\
        int t = 0;\
        printf("請輸入猜想數:");\
        ++count;\
        scanf("%d", &t);\
        if (t > data) printf("太大了\\n");\
        else if (t < data) printf("太小了\\n");\
        else break;\
    }\
    printf("猜對了。\\n");\
    printf("count = %d\\n", count);\
    return 0;\
}

共同技術點總結

技術點時鐘猜數字
時間種子time(0) 直接計算srand(time(0)) 初始化
格式化輸出%02d 雙位補零標準 printf
緩衝區控制fflush(stdout) 關鍵行緩衝自動刷新
循環控制忙等待秒級同步break 跳出無限循環

擴展練習建議

  1. 時鐘:改用 nanosleep 或 select 替代忙等待,降低 CPU 佔用。
  2. 時鐘:增加日期顯示、鬧鐘功能、多時區切換。
  3. 猜數字:增加難度等級(範圍 1-1000、限制次數)、最高分記錄(文件持久化)。
  4. 統一框架:封裝菜單系統,編譯成單一可執行文件 ctools。

這兩個小工具雖簡單,卻涵蓋了 C 語言控制台編程的核心要素:時間處理、隨機數、格式化 I/O、緩衝區控制、循環邏輯,是新手從「Hello World」邁向實用小程序的完美踏腳石。

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