slimxx


私信TA

用户名:dotcpp0599871

访问量:208

签 名:

等  级
排  名 103
经  验 8360
参赛次数 1
文章发表 2
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路: 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 人评分

  评论区

  • «
  • »