原题链接:判断第几天
解题思路: 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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复