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

我的 C 語言入門之路:閏年判斷、變量交換、異或優化

     編輯:關於C語言

我的 C 語言入門之路:閏年判斷、變量交換、異或優化

記錄 C 語言初學階段的兩個經典小程式:1000-2000 年閏年統計、兩變量交換(臨時變量法 vs 異或法)。

一、 閏年判斷與統計

#include <stdio.h>
int main() {
    int year, count = 0;
    for (year = 1000; year <= 2000; year++) {
        if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
            printf("%d ", year);
            count++;
        }
    }
    printf("\ncount=%d\n", count);
    return 0;
}

規則:能被 4 整除但不能被 100 整除,或能被 400 整除。輸出 1000-2000 年間所有閏年及總數。

二、 變量交換三種寫法

  1. 臨時變量法(通用、可讀性最好):
    int tmp = a; a = b; b = tmp;
  2. 算術法(無臨時變量,但可能溢位):
    a = a + b; b = a - b; a = a - b;
  3. 異或法(無臨時變量、無溢位、位運算最高效):
    a ^= b; b ^= a; a ^= b;

    原理:a^b^b = a,a^b^a = b。注意:a、b 必須不同地址,若 &a == &b 會清零。

三、 心得

  • 閏年邏輯體現複合條件判斷,注意運算符優先級(&& 高於 ||)。
  • 變量交換面試必考,異或法展示位運算思維,但工程上首選臨時變量法(現代編譯器優化同樣高效、可讀性強、無同地址陷阱)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved