问题标题: 酷町堂:2672 计算日期差值

0
0
已解决
毕小曼
毕小曼
初级光能
初级光能

http://judge.codingtang.com/problem/2672/

题目:

题目描述 Description

现在给出同一年里的两个日期(几月几日),试着计算它们之间的天数之差。

比如,5月1日和5月2日之间的天数相差为1天。

2月的天数以28天计。

输入描述 Input Description

第一行,两个整数,a b,表示a月b日
第二行,两个整数,c d,表示c月d日

输出描述 Output Description

两个日期之间的差值

样例输入 Sample Input

1 1
12 31

样例输出 Sample Output

364

求大佬帮个忙,解个题!

顺便讲解一下!

感激不尽!!!!!!


0
已采纳
梁彦博
梁彦博
初级光能
初级光能

首先,定义一个结构体数组名为cj,其中有n,y两个变量

接着写主函数:

int main()
{
    定义 a1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//把月份库记录下来
    cj a,b;//定义cj类型的结构体a,b
    定义 n=0;//初始化记录变量
    输入>>a.n>>a.y>>b.n>>b.y;//输入两个日期的年与日
    if(a.n*100+a.y>b.n*100+b.y) swap(a,b);//判断,大的在上,小的在下
    for(int i=a.n;i<b.n;i++) n+=a1[i];//循环加上月份差
    n+=b.y-a.y;//再加上剩下的天数差
    输出<<n;
    返回 0;
}

OK!这样就可以了!

0
吴宇轩
吴宇轩
初级守护
初级守护

先在外面写

struct cj{
    int n,y;
}a,b;
int m[13]={31, 28,31,30,31, 30,31,31, 30,31,30,31};
int ans;

然后在主函数里写

int a1[13]={0,31,28,31,30,31,30,31,31, 30,31,30,31};
    cj a,b;
    int n=0;
    cin>>a.n>>a.y>>b.n>>b.y;
    if(a.n*100+a.y>b.n*100+b.y) swap(a,b);
    for(int i=a.n;i<b.n;i++) n+=a1[i];
    n+=b.y-a.y;
    cout<<n;
    return 0;

OK!

我要回答