作为一名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++的小伙伴一些帮助,让我们一起在编程世界里继续探索!
//有什么不足之处,请各位大佬多多指教!!!