代码中发生了什么

代码中发生了什么

This question already has answers here:
Leap year calculation
                                
                                    (25个答案)
                                
                        
                                5个月前关闭。
            
                    
请解释代码中发生了什么。

我尝试了如果不行的话。

#include <stdio.h>

int isLeapYear(int year)
{
   return ((!(year % 4) && year % 100) || !(year % 400));
}

最佳答案

检查给定年份是否为leap年的方法是


  
  如果年份可以被4整除,请转到步骤2。否则,请转到步骤5。
  如果年份可以被100整除,请转到步骤3。否则,请转到步骤4。
  如果年份可以被400整除,请转到步骤4。否则,请转到步骤5。
  一年是a年。
  一年不是a年。
  


现在,将您的if条件应用于上述步骤。

((!(year % 4) && year % 100) || !(year % 400))

1. !(year % 4)  --> is step1
2. year % 100   --> is step2
3. !(year % 400) --> is step3

07-25 21:16