首页 > 代码库 > Hdu_哪一天?
Hdu_哪一天?
#include<stdio.h> #include<cstring> #define N 12 //一行数据的最大长度 int whichDay(int year , int month ,int day ); //求该年该月该日的天数 int getLine(char s[],int lim);//读入一整行数据
int main(){ int flag1=0; char date[N]; int length=0; while(n=getLine(date,N)){ printf("%s",date); int year=0,month=0,day=0; for(int i=0;i<n;i++){ if(date[i]==‘/‘){ if(flag1==0){ flag1=1; }else if(flag1==1){ flag1=2; } } if(flag1==0){ year=(date[i]-‘0‘)+year*10; } if(flag1==1){ month=(date[i]-‘0‘)+month*10; } if(falg1==2){ day=date[i](date[i]-‘0‘)+day*10; } } int sum=whichDay(year,month,day); printf("%d\n",sum); } }
int whichDay(int year , int month ,int day ){ int days[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //判定是否是闰年 if((year%4==0&&year%100!=0)||(year%400==0)){ days[1]=29; } //计算天数 int sum=0; for(int i=0;i<month-1;i++){ sum+=days[i]; } sum+=day; return sum; } int getLine(char s[],int lim){ int i=0,c; //i为该行中的字符长度,c记录读到的字符 while(--lim>0 && (c=getchar()!=EOF) && c!=‘\n‘){ s[i++]=c; } if(c==‘\n‘){ s[i++]=c; } s[i]=‘\0‘; return i; }
*注:在该题中输入为 YYYY/MM/DD,一般可用scanf("%d/%d/%d",&year ,&month, &day);上述方法读入更有通用性。
本文出自 “11703160” 博客,转载请与作者联系!
Hdu_哪一天?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。