题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
程序代码:
#includeusing namespace std; //思路: // 1、对输入的年月进行判断 // 2、如果月份是1,则天数 = 0+日数 // 如果月份是2,则天数 = 31+日数 //往下以此类推…… //3、当月数大于2时,判断是否为闰年,是闰年则总天数加一。 //4、输出总天数 bool isLeap(int year) { if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) return true; return false; } int main() { int y, m, d, sum; cin >> y >> m >> d; switch (m) { case 1:sum = 0; break; case 2:sum = 31; break; case 3:sum = 59; break;//默认是平年 case 4:sum = 90; break; case 5:sum = 120; break; case 6:sum = 151; break; case 7:sum = 181; break; case 8:sum = 212; break; case 9:sum = 243; break; case 10:sum = 273; break; case 11:sum = 304; break; case 12:sum = 334; break; } if (isLeap && m > 2) cout << sum + d << endl; else { cout << sum + d << endl; } return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)