武汉科技大学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/07Sample 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; }
相关文章推荐
- 武汉科技大学ACM :1007: 华科版C语言程序设计教程(第二版)例题4.13
- 武汉科技大学ACM :1009: 华科版C语言程序设计教程(第二版)例题4.18
- 武汉科技大学ACM:1002: 华科版C语言程序设计教程(第二版)例题6.6
- 武汉科技大学ACM :1006: 华科版C语言程序设计教程(第二版)例题4.15
- 武汉科技大学ACM:1003: 华科版C语言程序设计教程(第二版)例题6.6.改编
- 武汉科技大学ACM:1005: 华科版C语言程序设计教程(第二版)例题5.8
- 武汉科技大学ACM:1006: 华科版C语言程序设计教程(第二版)例题4.17
- 武汉科技大学ACM:1009: 华科版C语言程序设计教程(第二版)例题5.4
- 武汉科技大学ACM:1009: 华科版C语言程序设计教程(第二版)习题5.12
- 武汉科技大学ACM:1001: 华科版C语言程序设计教程(第二版)习题6.7
- 武汉科技大学ACM :1001: 华科版C语言程序设计教程(第二版)课后习题3.12
- 武汉科技大学ACM :1007: 华科版C语言程序设计教程(第二版)习题5.7
- 武汉科技大学ACM:1004: 华科版C语言程序设计教程(第二版)习题5.6
- 武汉科技大学ACM :1004: 华科版C语言程序设计教程(第二版)课后习题3.7
- 武汉科技大学ACM :1006: 华科版C语言程序设计教程(第二版)习题7.15
- 武汉科技大学ACM :1007: 华科版C语言程序设计教程(第二版)习题7.10
- 武汉科技大学ACM :1008: 华科版C语言程序设计教程(第二版)习题6.14
- 武汉科技大学ACM :1009: 华科版C语言程序设计教程(第二版)习题6.11
- 1239: 华科版C语言程序设计教程(第二版)例题6.17
- 1206: 华科版C语言程序设计教程(第二版)例题4.3