您的位置:首页 > 编程语言 > C语言/C++

武汉科技大学ACM :1010: 华科版C语言程序设计教程(第二版)例题7.8

2014-12-05 20:15 302 查看

Problem Description

输入一个用年月日表示的日期,求该日期是该年的第几天。输入某年的第几天,输出这一天是该年的几月几号,茂茂解不出,需要你的帮助。

Input

开始有个整数k,表示询问的种类,如果k=1,后面有三个合法的整数a,b,c,表示输入的年月日,此时输出该日期是该年的第几天;如果k=2,后面有两个合法的整数a,b,求a年的第b天的日期。保证所有的输入合法。

Output

对于询问1,输出一个整数表示是该年的第几天。 对于询问2,输出年月月,格式为****/**/** 如2013/09/07

Sample Input

2 2013 70
1 2013 3 1
1 2000 3 1


Sample Output

2013/03/11
60
61

我的代码:


#include <stdio.h>

int main()
{
struct mydata
{
int year;
int month;
int day;
} date;
int days,month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int dyas[13]={0,31,60,91,121,152,182,213,244,274,305,335,366};
int dyas1[13]={0,31,59,90,120,151,181,212,243,273,304,334,365};
int sw,yera,dya,mon=-1,d,i;
while(scanf("%d",&sw)!= EOF)
{
if(1==sw)
{
days=0;
scanf("%d%d%d",&date.year,&date.month,&date.day);
int i;
for(i=0;i<date.month;i++)
days+=month[i];
days+=date.day;
if((date.year%4==0&&date.year%100!=0)||(date.year%400==0))
if(date.month>=3)
days++;
printf("%d\n",days);
}
if(2==sw)
{

scanf("%d%d",&yera,&dya);
if((yera%4==0&&yera%100!=0)||(yera%400==0))
{
for(i=0;i<13;i++)
{
if(dyas[i]>dya)
{
mon=i;
d=dya-dyas[i-1];
break;
}
else if(dyas[i]==dya)
{
mon=i;
d=month[i];
if(mon==2)
d++;
break;
}
}
}
else
{
for(i=0;i<13;i++)
{
if(dyas1[i]>dya)
{
mon=i;
d=dya-dyas1[i-1];
break;
}
else if(dyas1[i]==dya)
{
mon=i;
d=month[i];
break;
}
}

}
printf("%04d/%02d/%02d\n",yera,mon,d);
}

}

return 1;
}


其他代码:

#include <iostream>

using namespace std;
int isRN(int y)
{
if((y%4==0&&y%100!=0)||y%400==0)
{
return 1;
}
return 0;
}
int a[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int main()
{
int n;
int y,m,d;
int s;
int flag;
while(cin>>n)
{

s=0;
if(n==1)
{
cin>>y>>m>>d;
flag=isRN(y);
for(int i=1;i<m;++i)
{
s+=a[flag][i];
}
s+=d;
cout<<s<<endl;
}
else if(n==2)
{
cin>>y>>s;
flag=isRN(y);
m=0;
do{
s-=a[flag][++m];
}while(s>0);
d = s+a[flag][m];
if(m>=10)
{
cout<<y<<"/"<<m<<"/"<<d<<endl;
}
else
{
cout<<y<<"/0"<<m<<"/"<<d<<endl;

}

}

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐