问题及代码:
/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:辛彬 * 完成日期:2014年 10 月 17 日 * 版 本 号:v1.0 * * 问题描述:编程序,输入年份和月份,输出本月有多少天。 * 输入描述:两个数,代表年份和月份。 * 程序输出:两个数,代表本月的天数。 */ #include <iostream> using namespace std; int main() { int year,month,day; cout <<"请输入年份:"; cin >>year; cout <<"请输入月份:"; cin >>month; switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31; break; case 4: case 6: case 9: case 11: day=30; break; case 2: if((year%4==0 && year%100!=0)||year%400==0) day=29; else day=28; break; } cout <<"本月有"<<day<<"天"<<endl; return 0; }
运行结果:
学习感悟:一开始的构思出了问题,因为不仅要分闰年和不是闰年,二月日数,上下半年月数的区分等等,需要进行复杂的分类,而我一直极力避免代码重复的程序。直到看了一位前辈的编程,才发现switch语句中的case句可以合并,所以才能想出这个程序。编程不是一个人的事,也需要知识一点一滴的积累。