hdu2005 第几天?【C++】

本文介绍了一个简单的C程序,用于计算给定日期是一年中的第几天。通过解析输入的日期格式(YYYY/MM/DD),程序判断是否为闰年,并累加每月天数来得出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第几天?

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 181543    Accepted Submission(s): 64444


Problem Description
给定一个日期,输出这个日期是该年的第几天。
 

 

Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
 

 

Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
 

 

Sample Input
1985/1/20 2006/3/12
 

 

Sample Output
20 71
 1 #include<string.h>
 2 #include<cstdio>
 3 #include<stdlib.h>
 4 using namespace std;
 5 int main()
 6 {
 7     char s[100];
 8     int time[3];
 9     char * p;
10 
11 
12     while(scanf("%s",s)!=EOF)
13     {
14         int result = 0;
15         int count = 0;
16         int month[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
17         p = strtok(s,"/");//s为要拆分的字符串,必须是char *类型,""里是分隔符,可以" */#"等
18         while(p != NULL)//拆分字符串
19         {
20             time[count++] = atoi(p);//将字符串转化为整型
21             p = strtok(NULL,"/");
22         }
23         if(time[0]%400 == 0 || ( time[0]%4==0 && time[0]%100!=0 ))
24             {
25                 month[2] = 29;
26             }
27             for(int i = 1;i < time[1];++i)
28             {
29                 result += month[i];
30             }
31             result += time[2];
32             printf("%d\n",result);
33 
34     }
35     return 0;
36 }

 

 

转载于:https://www.cnblogs.com/knmxx/p/9288550.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值