我使用模数错了吗?我的程序将始终输入if语句

时间:2018-03-12 02:36:29

标签: c++ if-statement nested-if leap-year

bool leap = false;
int leapd = 28;

if (year % 100 == 0) {
    if (year % 400 == 0) {
        leap = true;
    }
    else { leap = false; }
}

else if (year % 4 == 0) {
    leap = true;
}
else { leap = false; }
if (leap = true) {
    leapd++;
}

此程序决定输入的年份是否为闰年。我不确定原因,但程序最终会将leap设置为true。

如果年份可以被100整除,那么如果它也可以被400整除,那么它就是闰年。

如果它不能被100整除,那么如果你将年份除以4,那只是闰年。

2 个答案:

答案 0 :(得分:2)

上一次if (leap == true)声明应为if。如果你修复它,它应该工作。 =是赋值变量。因此,在您上一篇if声明中,您使用leap而不是true==进行比较,而是使用leaptrue分配给= }。

所以你的最终if语句应该是:

if (leap == true)
{
    leapd++;
}

答案 1 :(得分:0)

最后一个循环应该看起来像

if (leap == true)
{
    leapd++;
}

您目前的方式将leap设置为True,然后评估if。哪个永远是True。条件检查应为==