唐僧爱吃唐僧肉 2017-05-20 07:14 采纳率: 16.7%
浏览 648

问题出在哪里?跪求大神指教:

#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
现在突然又好了。
问题出在哪里?求大神指教

  • 写回答

2条回答 默认 最新

  • laurasett 2017-05-20 07:45
    关注

    你写的scanf(""%d%d%d...),格式符号之间不能有空格

    评论

报告相同问题?

悬赏问题

  • ¥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 导入文件到网吧的电脑并且在重启之后不会被恢复