问题及代码:
/*
* Copyright (c) 2014, 烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:月份天数计算.cpp
* 作 者:何小乐
* 完成日期:2014年 10 月 17 日
* 版 本 号:v1.0
*
* 问题描述:输入年份和月份,输出本月有多少天。
* 输入描述:年份和月份
* 程序输出:本月的天数
*/
#include <iostream>
using namespace std;
int main()
{
int month , year ,day ;
cout << "请输入待查天数的年份,按回车键继续。" << '\n' ;
cin >> year ;
cout << "请输入待查天数的月份,按回车键即可得到结果。" << endl ;
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 ;
cout << "本年为闰年。" << endl ;
}
else
day = 28 ;break ;
default :cout << "您的输入有误,请输入1~12之内的数字。" ;
}
cout << "本月的天数为:" << day << endl ;
return 0 ;
}
运行结果:
知识点总结:
1.首次尝试switch下的情况用if语句,挺成功的。
2.转义运算符在单独使用时要加‘ ’,在和字符串一起输入时不用加。
学习小结:
昨天早上在没有电脑的时候看了一下这个项目,因为不能直接输代码所以我在脑海里面构思了一下这个项目应该有的结构。正因如此,我一气呵成的输完了代码,即使有几个当时脑海中没意识到的错误,但是大思路有了编起来就很快。如果是一边输代码一边想的话,我以前经常是遇到问题就烦躁,导致一个程序耗时过长,自己也比较累,以后我拿到问题都要这样做,省时省力。
还有我在这个程序中第一次尝试了在switch中加入if语句,效果还不错。刚开始在case后面的if语句结束时没有加break,导致我运行时都带着default一起运行了。改过来之后就好了。
因为昨天编完程序就断网了,所以今天才发出来。
今天回顾这个程序时,发现一个常识性的错误:我居然把除了2月以外的月份都当成了30天,当即重新编辑了下。