第几天?
来源:互联网 发布:精通qt4编程 编辑:程序博客网 时间:2024/06/10 02:54
Problem Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
有时看到数字与字符混合时,不一定要用字符串处理,特别是对这题,数字与“\”有规律的排列.下面是一个AC的代码。
#include<stdio.h>int Isrunnian(int year){if(year%400==0||(year%4==0&&year%100!=0)) return 1;else return 0;}int main(){int year,month,day;<span style="color:#ff0000;">while(scanf("%d/%d/%d",&year,&month,&day)==3)//值得学习的地方!!! </span>{int i;int ans=0;for( i=1;i<month;i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) ans+=31; else if(i==4||i==6||i==9||i==11) ans+=30; else { if(Isrunnian(year)) ans+=29; else ans+=28; } } ans+=day;printf("%d\n",ans); }return 0;}
用字符串写的,不知道为什么没AC。
#include<stdio.h>#include<string.h>char a[1000];int Isrunnian(int year){if(year%400==0||(year%4==0&&year%100!=0)) return 1;else return 0;}int main(){while(scanf("%s",a)!=EOF){ int n,year,month,day; n=strlen(a);if(n==9){year=(a[0]-'0')*1000+(a[1]-'0')*100+(a[2]-'0')*10+a[3]-'0'; month=a[5]-'0'; day=(a[7]-'0')*10+a[8]-'0';}else{year=(a[0]-'0')*1000+(a[1]-'0')*100+(a[2]-'0')*10+a[3]-'0';month=(a[5]-'0')*10+a[6]-'0';day=(a[8]-'0')*10+a[9]-'0';} int ans=0;for(int i=1;i<month;i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) ans+=31; else if(i==4||i==6||i==9||i==11) ans+=30; else { if(Isrunnian(year)) ans+=29; else ans+=28; } } ans+=day;printf("%d\n",ans); }return 0;}
0 0
- 第几天
- 【第几天?】
- 第几天?
- 第几天
- 第几天?
- 第几天
- 第几天
- 第几天?
- 第几天
- 第几天
- 第几天?
- 第几天
- 第几天?
- 第几天
- 第几天
- 第几天?
- 第几天?
- 第几天
- jQuery中jqGrid分页实现代码
- 安卓必死在中国手机市场血拼后
- 站群服务器用SS5 SOCKS5 配置多IP/多端口高性能代理服务器(16G内存主机支持超过100万并发S5代理)
- HDU_4183_Pahom on Water(最大流)
- JS 对象(Object)和字符串(String)互转
- 第几天?
- socket.io邀请制带登录聊天室实例【DRRR-chat-room】
- group by使用
- 第一行代码学习笔记-第一章 开始启程-1.android简介
- nyoj 502 筹建工程 【迪杰斯特拉】
- PHP小程序--字符串截取,支持中文和其他编码
- 二分 hdu5432 Pyramid Split
- 第一行代码学习笔记-第一章 开始启程-2.安卓系统文件介绍
- ubuntu启用root+新建用户+修改主机