最新消息:点击查看大S的省钱秘笈

Vijos P1211 生日日数 C语言版

Vijos题解 Slyar 52浏览 0评论

文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

描述 Description

CCC老师的生日是YY年MM月DD日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天)。

输入格式 Input Format

从文件的第一行分别读入YY,MM,DD其中1949<=YY<=2006,日期绝对合法。

输出格式 Output Format

输出文件只有一行,即CCC老师生日第一万天以后的日期,格式为 “Y-M-D”。

Tip:疯狂的判断。。。尤其是闰年和平年对于二月的判断。。。充分利用&&和||可以简化程序。。。

另外需要注意括号配对的问题,我就因为这个卡了近半个小时。。。

#include <stdio.h>

int main(){
int y,m,d,i;
scanf("%d%d%d",&y,&m,&d);
for (i=1;i<=10000;i++){
d++;
if (d==29&&m==2&&(!((y%4==0&&y%100!=0)||(y%400==0)))){
d=1;
m++;
}
if (d==30&&m==2&&((y%4==0&&y%100!=0)||(y%400==0))){
d=1;
m++;
}
if (d==31&&(m==4||m==6||m==9||m==11)){
d=1;
m++;
}
if (d==32){
d=1;
m++;
}
if (m==13){
m=1;
y++;
}
}
printf("%d-%d-%d",y,m,d);
system("pause");
return 0;
}

转载请注明:Slyar Home » Vijos P1211 生日日数 C语言版

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 一堆括号看得眼花。。。
    Tyndy6年前 (2011-06-10)回复