标题:程序为何输出结果有误呢,大家我看看,谢谢
取消只看楼主
wug
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-2-18
 问题点数:0 回复次数:0 
程序为何输出结果有误呢,大家我看看,谢谢
有一道习题如下:
下面的公式能用来计算两个日期之间的天数.首先分别算出各日期的N值,然后两个日期的N值相减,其差即为两个日期之间的天数.计算日期N值的方法如下:

N=1461*f(年,月)/4+153*g(月)/5+日;
其中
f(年,月)=-1,如月<3;否则,f(年,月)=年.
g(月)=月+13,如月<3;否则,g(月)=月+1.
又,如果计算下式
(N-621049)%7
得到0到6范围内的数.该数代表一周中相应的一天,即星期日到星期六.以上算式中的运算都是整数运算,试用以上公式,编写一个程序,读入两个日期,输出它们分别是星期几,和它们之间的天数.
  所编程序如下:
#include<math.h>
main()
{
int y1,m1,d1,y2,m2,d2;
int s,v,t,g,n1,n2;
printf("input y1,m1,d1 and y2,m2,d2\n");
scanf("%d,%d,%d %d,%d,%d",&y1,&m1,&d1,&y2,&m2,&d2);
if(m1<3&&m2<3)
s=y1-1,v=y2-1,t=m1+13,g=m2+13;
else
s=y1,v=y2,t=m1+1,g=m2+1;
n1=1461*s/4+153*t/5+d1;
n2=1461*v/4+153*g/5+d2;
s=fabs(n1-n2);
v=fabs(n1-621049)%7;
t=fabs(n2-621049)%7;
printf("s=%d,v=%d,t=%d\n",s,v,t);
} 感到迷惑的是V值为何有误呀?

[此贴子已经被作者于2007-2-20 17:38:42编辑过]

搜索更多相关主题的帖子: 有误 结果 输出 天数 
2007-02-18 20:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-121233-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.513582 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved