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

0
0
已解决
舒航
舒航
新手守护
新手守护
#include<iostream>
using namespace std;
struct S{
    int mon,day;
}a,b;
int m[13]={31,28,31,30,31,30,31,31,30,31,30,31};
int ans;
int main()
{
    cin>>a.mon>>a.day>>b.mon>>b.day;
    if(a.mon==2)
    {
        a.day=61;
    }
    if(b.mon==2)
    {
        b.day=61;
    }
    if(a.mon>b.mon||a.mon==b.mon&&a.day>b.day)
    {
        swap(a,b);
    }
    for(int i=a.mon;i<=b.mon;i++)
    {
        ans+=m[i];
    }
    ans+=(b.day-a.day);
    cout<<ans;
    return 0;
}

大佬,哪错了???


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

首先,定义一个结构体数组名为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
徐熙晨
徐熙晨
新手光能
新手光能
    n.a--;
    m.a--;
    int q=n.b,k=m.b;
    for(int i=0;i<n.a;i++)
        q+=a[i];
    for(int i=0;i<m.a;i++)
        k+=a[i];

以上为核心代码

要用一个数组存每个月的天数,代码实现如下:

int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};

结构体定义

struct nm
{
    int a,b;
}n,m;

注意一下输出

cout<<abs(q-k);

 

0
我要回答