解题思路: 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语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:668 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:863 |
K-进制数 (C++代码)浏览:938 |
字符串输入输出函数 (C++代码)(都当成字符串吧hhhhhhhh)浏览:509 |
C语言训练-数字母 (C语言代码)浏览:610 |
C语言训练-素数问题 (C语言代码)浏览:1696 |
Pascal三角 (C语言代码)格式错误浏览:551 |
wu-理财计划 (C++代码)浏览:907 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:769 |
字符串输入输出函数 (C语言代码)浏览:2604 |