问题标题: 酷町堂:2672,大佬帮我纠错,谢谢

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;
}

 


0
已采纳
吴君昊
吴君昊
新手光能
新手光能

你的if判断条件有误

if(a.mon>b.mon||a.mon==b.mon&&a.day>b.day)

这里你的想法是对的,但实现代码时有点小错误,建议你写两个同样目的的if来解答;

以下是我的部分提示:

int s[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};// 存储每个月得日期
struct rq{
int m,d;
}a,b;

 

如果(a.m>b.m)//保证a是较小得日期
        交换(a,b);//.交换函数可以交换结构体变量a, b得内部所有成员变量
    如果(a.m==b.m&&a.d>b.d)//如果日期相等需要保证最后b.d-a.d得结果为正值
        swap(a,b);
    循环(不方便写,会被禁言){//将 小的月份变成和大的月份同一月
        sum+=s[i];//注意只需要累加到b.m-1对应得月份就可以了
    }
        自己想;//加上:相应得天数

此部分是提示代码,请勿抄

祝你AC

 

0
潘晨皓
潘晨皓
高级天翼
高级天翼

你的判断是不是有问题呀?

0
吴文光
吴文光
新手光能
新手光能

int s[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};// 存储每个月得日期
struct rq{
    int m,d;    
}a,b;

吴文光在2020-02-05 09:45:42追加了内容

望采纳

0
吴文光
吴文光
新手光能
新手光能
    整形 sum=0;
    输入>>a.m>>a.d;
    输入>>b.m>>b.d;
    如果(a.m>b.m)//保证a是小的 
    交换函数(a,b);//交换a, b内部的值
    如果(a. m==b. m&&a.d>b.d)//如果日期相等需要保证最后b.d-a.d得结果为正值
   交换函数(a,b);
   循环(int i=a.m;i<=b.m-1;i++){//将 小的月份变成和大的月份同一月
    sum+=s[i];//注意只需要累加到b.m-1对应得月份就可以了
    } 
    sum+=b.d-a.d;//加上:相应得天数
    输出<< sum;
吴文光在2020-02-05 09:46:00追加了内容

望采纳

0
刘宇航
刘宇航
初级守护
初级守护
int s[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};// 存储每个月得日期
struct rq{
int m,d;
}a,b;

 

如果(a.m>b.m)//保证a是较小得日期
        交换(a,b);//.交换函数可以交换结构体变量a, b得内部所有成员变量
    如果(a.m==b.m&&a.d>b.d)//如果日期相等需要保证最后b.d-a.d得结果为正值
        swap(a,b);
    循环(不方便写,会被禁言){//将 小的月份变成和大的月份同一月
        sum+=s[i];//注意只需要累加到b.m-1对应得月份就可以了
    }
        自己想;//加上:相应得天数
我要回答