判断从出生到18岁生日一共度过了多少天
2015-11-23 11:39
239 查看
杭电acm第1201
测试数据
4
2000-02-29
2001-02-28
1988-02-28
1988-03-07
/***********判断从出生到18岁生日一共度过了多少天*******************/ #include<stdio.h> #define N 100 void show(int data[][3],int n){ int sum=0; for(int i=0;i<n;i++){ printf("%d-%d-%d\n",data[i][0],data[i][1],data[i][2]); } } int judge(int y,int m,int d){ if(m==2&&d==29&&(y%400==0||(y%4==0&&y%100!=0))){ return 1; }else if(y%400==0||(y%4==0&&y%100!=0)){ return -1; }return 0; } int procs(int y,int m,int d){ int sum=0; if(judge(y,m,d)==1) return -1; for(int i=0;i<18;i++){ if(judge(y+i,m,d)==-1){ sum+=366; }else{ sum+=365; } }if(m>2){ if(judge(y,m,d)==-1) sum--; else if(judge(y+18,m,d)==-1) sum++; } return sum; } void main(){ int DATA [3]={0}; int n=0; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d-%d-%d",&DATA[i][0],&DATA[i][1],&DATA[i][2]); printf("%d\n",procs(DATA[i][0],DATA[i][1],DATA[i][2])); } //show(DATA,n); // for(int i=0;i<n;i++){ // printf("%d\n",procs(DATA[i][0],DATA[i][1],DATA[i][2])); // } }
测试数据
4
2000-02-29
2001-02-28
1988-02-28
1988-03-07
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性
- C++ Custom Control控件向父窗体发送对应的消息