| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 718 人关注过本帖
标题:程序为何输出结果有误呢,大家我看看,谢谢
取消只看楼主 加入收藏
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
快速回复:程序为何输出结果有误呢,大家我看看,谢谢
数据加载中...
 
   



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

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