#include
#include
typedef struct date
{
int year;
int month;
int day;
};
int dayofmonth[12]={31,28,31,30,31,30,31.31,30,31,30,31};
typedef struct date Date;
int isleapyear(int y);//计算是否为闰年;
int islegal(Date x);//计算日期是否合法;
int calcday(Date x);//计算日期是当年的第几天
int main()
{
Date a;
Date b;
printf("Please input the first date:");
scanf("%d %d %d",&a.year,&a.month,&a.day);
printf("Please input the second date:");
scanf("%d %d %d",&b.year,&b.month,&b.day);
int m;
if(islegal(a)==1&&islegal(b)==1&&a.year==b.year)//如果在同一年计算相差天数;
m=calcday(b)-calcday(a);
else
m=-1;//不在同一年视为输入不合法;
printf("Day between two dates:%d",m);
return 0;
}
int isleapyear(int y)
{
if((y%4==0&&y%100!=0)||y%400==0)
return 1;
else
return 0;
}
int islegal(Date x)
{
if(x.day>=1&&x.day<=dayofmonth[x.month-1])//判断天数是否在合法范围内
{
if(x.month>=1&&x.month<=12)
return 1;
else
return 0;
}
}
int calcday(Date x)
{//计算日期是该年的第几日
int i,sum=0;
for(i=0;i<=x.month-2;i++)
{
sum=sum+dayofmonth[i];
}
sum=sum+x.day;
if(x.month>2&&isleapyear(x.year)==1)
sum=sum+1;
else
sum=sum+0;
return sum;
}
这个程序刚才的问题是第二个scanf一直无法接收数据
scanf("%d %d %d",&b.year,&b.month,&b.day);
这一句,
还有每次我、输出的值都是-1
现在突然又好了。
问题出在哪里?求大神指教
问题出在哪里?跪求大神指教:
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
悬赏问题
- ¥50 buildozer打包kivy app失败
- ¥30 在vs2022里运行python代码
- ¥15 不同尺寸货物如何寻找合适的包装箱型谱
- ¥15 求解 yolo算法问题
- ¥15 虚拟机打包apk出现错误
- ¥15 用visual studi code完成html页面
- ¥15 聚类分析或者python进行数据分析
- ¥15 三菱伺服电机按启动按钮有使能但不动作
- ¥15 js,页面2返回页面1时定位进入的设备
- ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复