输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年。
判断闰年口诀:四年一润,百年不润,四百年再润。
我当时的第一想法比较直接,疯狂用if枚举判断
代码如下:
#include<iostream>
using namespace std;
int main()
{
int y,m;
cin>>y>>m;
if(y%4==0 && y%100!=0 || y%400==0) //闰年情况
{
if(m==1) cout<<31;
if(m==2) cout<<29;
if(m==3) cout<<31;
if(m==4) cout<<30;
if(m==5) cout<<31;
if(m==6) cout<<30;
if(m==7) cout<<31;
if(m==8) cout<<31;
if(m==9) cout<<30;
if(m==10) cout<<31;
if(m==11) cout<<30;
if(m==12) cout<<31;
}
else //非闰年情况
{
if(m==1) cout<<31;
if(m==2) cout<<28;
if(m==3) cout<<31;
if(m==4) cout<<30;
if(m==5) cout<<31;
if(m==6) cout<<30;
if(m==7) cout<<31;
if(m==8) cout<<31;
if(m==9) cout<<30;
if(m==10) cout<<31;
if(m==11) cout<<30;
if(m==12) cout<<31;
}
return 0;
}
但是用数组更简单,代码如下:(个人更推荐这种)
#include<bits/stdc++.h>
using namespace std;
int year,month;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //开头注意补0
int main()
{
cin>>year>>month;
if((year%4==0 && year%100 != 0) || n%400==0)
a[2]=29;
cout<<a[month];
return 0;
}