| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 595 人关注过本帖
标题:求助~~~~~帮忙看看检查一下~~~
只看楼主 加入收藏
搁浅的考拉
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-12-23
收藏
 问题点数:0 回复次数:6 
求助~~~~~帮忙看看检查一下~~~

3)已知1990年1月1日是星期一.现要求根据输入的年月日输出该天是星期几.
为什么我做的有误差啊..哪位大哥帮我看看(在2005年可以别的年就不可以)

#include<stdio.h>
main()
{
int a[2][12]={
{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}},
b[2]={365,366};
int d,n,y,r,h=0,i=1,e;
long sum=0;
printf("qing shu ru ni yao de nian fen\n",n);
scanf("%d",&n);
printf("qing shu ru ni yao de yue fen\n",y);
scanf("%d",&y);
printf("qing shu ru ni yao de ri qi\n",r);
scanf("%d",&r);
if (n>1900)
{for (d=1900;d<n;d++)
{if(d%4==0&&d%100!=0||d%400==0)
i=2;
sum+=b[i];
i=1;
}
}
else sum=0;
if(n%4==0&&n%100!=0||n%400==0)
h=1;
sum+=r;
if(y!=1)
{
for(d=0;d<y-1;d++)
sum+=a[h][d];
}
e=(sum)%7;
printf("%d",e);
getch();

搜索更多相关主题的帖子: 检查 
2005-12-27 18:10
lhy198548
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-6-11
收藏
得分:0 

你定义了数组b[2]={365,366};

if (n>1900)
{for (d=1900;d<n;d++)
{if(d%4==0&&d%100!=0||d%400==0)
i=2;
sum+=b[i]; \\这里b[2]是什么东东呢
i=1;
}
}

2005-12-27 21:40
搁浅的考拉
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-12-23
收藏
得分:0 
b[2]={365,366};

这个是定义啊
这个程序没有错啊
就是在2005年内查没有问题
在别的年就有问题了
谁懂啊
2005-12-27 23:03
搁浅的考拉
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-12-23
收藏
得分:0 

怎么没有人来看~~~~~

郁闷

2005-12-28 21:34
搁浅的考拉
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-12-23
收藏
得分:0 
2005-12-29 13:19
bandit
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-12-29
收藏
得分:0 

我将你的程序改动了一下,主要是把1990以后跟以前的年份分离,其实算法一样,同时注意i的值只能取0和1。
#include "stdio.h"

main()
{
int a[2][12]={
{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}},
b[2]={365,366},
c[2]={-365,-366};

int d,n,y,r,h=0,i=0,e;
long sum=0;
printf("qing shu ru ni yao de nian fen\n",n);
scanf("%d",&n);
printf("qing shu ru ni yao de yue fen\n",y);
scanf("%d",&y);
printf("qing shu ru ni yao de ri qi\n",r);
scanf("%d",&r);


if(n>1990)
{
for (d=1990;d<n;d++)
{
if(d%4==0&&d%100!=0||d%400==0) i=1;
sum+=b[i];
i=0;

}


if(n%4==0&&n%100!=0||n%400==0)
h=1;
sum+=r;

if(y!=1)
{
for(d=0;d<y-1;d++)
sum+=a[h][d];
}
e=(sum)%7;
printf("%d",e);

}

else if(n<=1990&&n>=1900)
{
for (d=1900;d<n;d++)
{if(d%4==0&&d%100!=0||d%400==0)
i=1;
sum+=c[i];
i=0;
}

if(n%4==0&&n%100!=0||n%400==0)
h=1;
sum+=-r;

if(y!=1)
{
for(d=0;d<y-1;d++)
sum+=-a[h][d];
}
e=(-sum)%7;
printf("%d",e);
}

else sum=0;
getch();
}

2005-12-29 16:47
搁浅的考拉
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-12-23
收藏
得分:0 

恩...多谢知道..小弟在这里谢啦~~~~~~~~~

2005-12-29 21:49
快速回复:求助~~~~~帮忙看看检查一下~~~
数据加载中...
 
   



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

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