输入一年并显示“闰年"如果是闰年或"不是闰年"如果不是闰年而不使用模数符号

时间:2016-04-28 14:11:24

标签: turbo-c++ turbo-c

到目前为止,我已经提出了这个问题,但它似乎并没有一致地输出结果。

if (year/4*4==year)
{
cout<<"It is a leap year!";
}
else
{
cout<<"It is not a leap year!";
}

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果您想检查用户输入的某些年份是否是闰年,您只需要写一个循环。

在我的代码中,我还添加了一个辅助函数(Turbo C ++有bool类型,对吗?它是标准的一部分...),具有确切的公式(你可以在网上找到)。请注意,当用户输入非整数(或EOF)的内容时,循环结束。

#include <iostream>

bool is_leap( int y )
{
    return  y % 400 == 0  ||  ( y % 100 != 0  &&  y % 4 == 0 );
}

int main()
{
    int year;

    while ( std::cin >> year )
    {
        if ( is_leap(year) )
        {
            std::cout << year << " is a leap year!\n";
        }
        else
        {
            std::cout << year << " is not a leap year.\n";
        }
    }

    return 0;
}

例如,您可以尝试:

1857 is not a leap year.
1900 is not a leap year.
1980 is a leap year!
1991 is not a leap year.
2000 is a leap year!
2016 is a leap year!