C++ C+中的闰年计算+;做家庭作业? #包括 使用名称空间std; int main(){ 年内; 哪一年; 如果(哪一年-(n*4)=0){ 不能使用模函数 #include <iostream> using namespace std; int main() { int what_year; cout << "Enter calendar year "; cin >> what_year; if (what_year - (n * 4) = 0 ) { cout << "leap year"; } else { cout << "wont work"; } system("Pause"); return 0; }

C++ C+中的闰年计算+;做家庭作业? #包括 使用名称空间std; int main(){ 年内; 哪一年; 如果(哪一年-(n*4)=0){ 不能使用模函数 #include <iostream> using namespace std; int main() { int what_year; cout << "Enter calendar year "; cin >> what_year; if (what_year - (n * 4) = 0 ) { cout << "leap year"; } else { cout << "wont work"; } system("Pause"); return 0; },c++,leap-year,C++,Leap Year,请注意,这并不能解释100年和400年的跳跃 正确的代码应该是 if ((year % 4) == 0) { //leap year } 用这个代替 if(((year%4) == 0) && (((year%100)!=0) || ((year%400) == 0)) { //leap year } 这需要除以4后一年的剩余时间,并测试它是否为零。使用=而不是=时也有问题-后者测试相等性,前者指定一个值 编辑:根据下面Steve的评论进行编辑。闰年规则是 bool bLea

请注意,这并不能解释100年和400年的跳跃

正确的代码应该是

if ((year % 4) == 0)
{
//leap year
}
用这个代替

if(((year%4) == 0) && (((year%100)!=0) || ((year%400) == 0))
{
//leap year
}
这需要除以4后一年的剩余时间,并测试它是否为零。使用
=
而不是
=
时也有问题-后者测试相等性,前者指定一个值

编辑:根据下面Steve的评论进行编辑。

闰年规则是

bool bLeapYear = false;
if ((what_year % 4) ==0)  {
     if ((what_year % 100) == 0) {
          bLeapYear = ((what_year % 400) == 0);
     } else {
          bLeapYear = true;
     }
     // leap year
}

您可以使用来查看一个数是否可以被另一个数均匀整除,即除法中是否没有余数

2000%400=0//可被400整除

2001%400=1//不能被400整除


有趣的是,一些著名的软件实现没有应用“400”部分,这导致2000年2月29日对于这些系统不存在。

根据一些决定一年是否是闰年的规则,一年应该被4整除,对于那些被100整除的年份,它也应该被400整除

 if year modulo 400 is 0 then
   is_leap_year
else if year modulo 100 is 0 then
   not_leap_year
else if year modulo 4 is 0 then
   is_leap_year
else
   not_leap_year
int年;
年份;
如果(第%4年==0){
如果(年份%100==0){
如果(年份%400==0){

cout 1900不是闰年,这个公式不正确@Steve Wow,我从来不知道这个信息。我会相应地编辑。请注意,在大约8000年后,日历将再次落后一天。但这不是我们的问题:)正如下面其他人提到的,你要找的是“模运算”。它是一个运算符,可以为您提供除法的余数。如果余数为0,则该数字是完全可除数的。可能与一组简单的低级日期算法重复:@KevinP.Rice:Cool optimization。太糟糕了,维基百科不会接受将其作为现有文章的补充。我的代码确实说明了400年闰年。如假设年份是2400,那么结果是(真&&(假&(假| |真))=(真&&真)=真。嗯。是的,你的代码显然是400闰年。我不知道为什么我以前没有看到这一点。:)
int year;
cout << "Enter a year: ";
cin >> year;

if (year%4 == 0) {
    if (year%100 == 0) {
        if (year%400 == 0) {
            cout << year << " is a leap year.";
        }
        else {
            cout << year << " is not a leap year.";
        }
    }
    else {
        cout << year << " is a leap year.";
    }
}
else {
    cout << year << " is not a leap year.";
}

return 0;}