我編寫了這段代碼來確定輸入年份是否爲閏年。意思是,可以被4和400整除的那些是閏年,並且是100或者其他什麼都不是。閏年基本C++布爾總是返回true
但是,我的程序總是布爾值返回true,這樣輸出纔會相信每年爲閏年。
這裏是我到目前爲止的代碼:
#include <iostream>
#include <cmath>
#include <string>
#include <iomanip>
using namespace std;
bool leap_year(int year);
int main()
{
int year;
bool leap_year(int year);
cout << "Please input the year in question: ";
cin >> year;
if (leap_year == false)
{
cout << "The year is not a leap year. ";
}
else
{
cout << "The year is a leap year. ";
}
return 0;
}
bool leap_year(int year)
{
if (year % 4 == 0)
{
bool leap_year = true;
}
else if (year % 400 == 0)
{
bool leap_year = true;
}
else if (year % 100 == 0)
{
bool leap_year = false;
}
else
{
bool leap_year = false;
}
if (bool leap_year = false)
{
return false;
}
else
{
return true;
}
}
它不應該總是返回TRUE;因爲[它不應該編譯](HTTP:// coliru .stacked-crooked.com /一個/ 71aea1ab488cdd36)。 – chris
它絕對編譯。我使用Visual Studio 2015 Express版作爲編譯器。 – marihikari
有趣的是,GCC也編譯它(帶有警告)。但是,從一些閱讀中,我仍然相信克朗是對的。編輯:GCC是錯誤的,我想這是因爲它仍然接受'false'作爲空指針常量(即,它可以讓你做'int * p = false;')。 – chris