lvyouzi 2016-04-16 06:47 采纳率: 0%
浏览 3457

求帮助!任意一个年月日,求公元1年1月1日到该日期前一年末总共多少天?

本人C语言初学者,学找些题做,见到这个题编了如下代码,不知道正确的该如何编,求高手帮助!!!

输入任意一个年,月,日,求出公元1年1月1日到该日期前一年的年末总共有多少天?到该日期前一个月的月末总共有多少天,到这一天共有多少天?并求出这一天是星期几?
#include
main()
{
int a,b,c,d,e,s,w,y1,y2,y3,year;
printf("请输入任意年、月、日(以空格隔开)\n");
scanf("%d%d%d",&a,&b,&c);
if((year%4==0 && year%100==0) || year%400==0)
{
s=a-1;
y1=s/4;
y2=s/100;
y3=s/400;
w=(s-y1+y2-y3)*365+(y1-y2+y3)*366+1;
if(b==1)
{c=31;

e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==2)
{c=28;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==3)
{c=31;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==4)
{c=30;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==5)
{c=31;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==6)
{c=30;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==7)
{c=31;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==8)
{c=31;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==9)
{c=30;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==10)
{c=31;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==11)
{c=31;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==12)
{c=30;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }

  }
  else 

{
s=a-1;
y1=s/4;
y2=s/100;
y3=s/400;
w=(s-y1+y2-y3)*365+(y1-y2+y3)*366+1;
printf("请输入月份:");
scanf("%d",&b);
if(b==1)
{c=31;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==2)
{c=29;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==3)
{c=31;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==4)
{c=30;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==5)
{c=31;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==6)
{c=30;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==7)
{c=31;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==8)
{c=31;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==9)
{c=30;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==10)
{c=31;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==11)
{c=31;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }
if(b==12)
{c=30;
printf("请输入日期:");
scanf("%d",&c);
e=w+b+c;
printf("俩年份之间差%d天",&e); }

      }

}

  • 写回答

2条回答

  • 小灸舞 2016-04-16 07:12
    关注

    看了四行发现一个小错误
    if((year%4==0 && year%100==0) || year%400==0) 应该改成if((year%4==0 && year%100!=0) || year%400==0)

    评论

报告相同问题?

悬赏问题

  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误