C++代码里的闰年解谜之旅

作为一名C++编程新手,我在学习过程中遇到了各种有趣又具挑战的题目。

今天,想和大家分享一道特别“接地气”的基础编程题——判断闰年我们老师说很难。。。),别看它不起眼,其中的门道可不少!


 一、题目亮相:闰年判断规则


 题目很简单:从键盘输入一个年份,编写程序判断它是否为闰年,并输出相应结果。
 
but,闰年怎么判断?(⊙﹏⊙)

幸好,题目很人道。LOOK!

能被4整除但不能被100整除的年份是闰年;

能被400整除的年份也是闰年

两个条件满足其一即可。(注意,满足其一即可,所以是什么逻辑运算符?答案是:......)

来吧,大展身手!


二、初次尝试:思路与代码雏形


看到题目,最先想到的肯定用 if-else 条件判断语句。

先获取用户输入的年份,然后根据闰年规则进行判断。
 

#include <iostream>
using namespace std;

int main() {
    int year;
    cout << "请输入一个年份: ";
    cin >> year;
    if (year % 4 == 0) 
    {
        if (year % 100 != 0) 
        {
            cout << year << " 是闰年" << endl;
        }
    } 
    else if (year % 400 == 0) 
    {
        cout << year << " 是闰年" << endl;
    } 
    else {
        cout << year << " 不是闰年" << endl;
    }
    return 0;
}


我本以为这么写就搞定了,可一运行,发现有些不对劲。像1900年这种特殊年份,按我的代码判断它是闰年,但实际上它不是!这可把我难住了,问题到底出在哪呢???


三、查缺补漏:优化代码逻辑


经过一番思考和查阅资料,我发现自己的逻辑有些混乱。 

if-else 语句的嵌套和条件顺序不太对。正确的做法是,“被4整除并不是100的倍数;整除400”  这两个条件,用  逻辑或||  连接🔗🔗。

修改后的代码如下:
 

#include <iostream>
using namespace std;

int main() {
    int year;
    cout << "请输入一个年份: ";
    cin >> year;
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
        cout << year << " 是闰年" << endl;
    } else {
        cout << year << " 不是闰年" << endl;
    }
    return 0;
}


这次再运行,不管输入1900、2000还是2024这样的年份,都能得到正确结果啦!还更简洁!


 
四、总结收获:编程中的思考

 
 逻辑清晰很重要:

写代码前一定要理清思路,把条件之间的关系搞明白。这样不仅能快速编写,还能使代码更简洁。

条件顺序有讲究:

合理安排条件顺序,能让代码更简洁高效。用逻辑运算符连接。

反复测试不可少:

只靠自己想当然可不行,要多拿不同的数据测试,才能发现隐藏的问题 。
 

通过这道题,我对C++编程又多了一份热爱和理解。希望我的解题经历,能给同样在学习C++的小伙伴一些帮助,让我们一起在编程世界里继续探索!

//有什么不足之处,请各位大佬多多指教!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值