原题链接:判断第几天
解题思路: for循环+switch足以解这道题
注意事项:1.2月的闰月要判断 2.循环的条件 int i = 1; i < m; i++ 不能等于m不然会多加一个月份的天数 3. sum在每一次输出结束时或者循环开始前归0,不然会把之前的sum加到新的一轮中 4.输出中的格式化输出,我不太喜欢使用所以加一个一个字符代替,也可以用
scanf("%d/%d/%d", &y, &m, &d) != EOF
参考代码:
#include <iostream>
using namespace std;
// 判断给定的年份是否是闰年
bool isp(int x) {
if ((x % 4 == 0 && x % 100 != 0) || (x % 400 == 0)) {
return true;
}
return false;
}
int main() {
int y, m, d;
char op;
// 循环处理多组输入数据
while (cin >> y >> op >> m >> op >> d) {
int sum = 0; // 初始化累计天数为0
// 遍历从1到m-1的月份,累加这些月份的天数
for (int i = 1; i < m; i++) {
switch (i) {
case 2: // 二月
if (isp(y))
sum += 29; // 闰年2月有29天
else
sum += 28; // 非闰年2月有28天
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: // 大月(31天)
sum += 31;
break;
case 4:
case 6:
case 9:
case 11: // 小月(30天)
sum += 30;
break;
}
}
// 在累计天数的基础上加上输入的日(d),并输出结果
cout << sum + d << endl;
}
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复