试题编号: | 201509-2 |
试题名称: | 日期计算 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 输入格式 输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。 输出格式 输出两行,每行一个整数,分别表示答案的月份和日期。 样例输入 2015 样例输出 3 样例输入 2000 样例输出 2 |
以下是楼主的参考答案:
#include <stdio.h>
bool check(int yy){
if(yy%4==0 && yy%100!=0)return true;
if(yy%400==0)return true;
return false;
}
int month[12][2]={{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31}};
int main(){
int y,d,m;
scanf("%d%d",&y,&d);
bool flag=check(y);
for(m=0;m<12;m++){
if(d>month[m][flag])d-=month[m][flag];
else break;
}
printf("%d\n",m+1);
printf("%d\n",d);
return 0;
}