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对应得月份就可以了 } 自己想;//加上:相应得天数