K&R 中的闰年测试

主要观点:18 年前从《C 程序设计语言(第二版)》中学到判断闰年的测试方法,之前以为能被 4 整除的年是闰年,后来知道世纪年只有能被 400 整除才是闰年,用 Unix 的cal命令可验证,同时给出另一个同样有效的闰年测试方法,在评论区 Thaumasiotes 解释了两个测试方法都有效的原因,通过真值表说明两个布尔表达式通常不等价,但这里因特殊情况可视为等价。
关键信息:18 年前从特定书籍学到闰年测试方法;世纪年除能被 400 整除外不是闰年;两个闰年测试方法;真值表及相关分析。
重要细节:书中 2.5 节的测试方法为(year % 4 == 0 && year % 100!= 0) || year % 400 == 0;另一个测试方法为year % 4 == 0 && (year % 100!= 0 || year % 400 == 0);用cal 1800cal 1900验证非世纪闰年,cal 2000验证世纪闰年等。

阅读 12
0 条评论