高手帮我写个C语言程序好吗 谢谢了

请高手帮我写一个C语言谢谢了要求不要用到指针谢谢了。给出个公式N=d+2m+[3(m+1)/5]+y+[y/4]-[y/100]+[y/400]+2这个公式是求一个确定的... 请高手帮我写一个C语言 谢谢了 要求不要用到指针谢谢了。
给出个公式N = d + 2m + [3(m+1)/5] + y +[y/4] - [y/100] + [y/400] + 2
这个公式是求一个确定的日期是星期几的。 y m d 分别代表年月日。 有个例外如果月份是1月2月必须用13和14来代入。 通过代入得到的N除以7得到的余数0是星期六1是星期天依此类推。
举个例子 1998年3月18日 就用y=1998 m=3 d=18 如果是1998年2月18就用y=1998 m=14 d=18来代入
中括号里面的内容只取整数 比如括号内的运算是499.5只取400 谢谢了。。
如果我表达的不够清楚 请加我QQ谢谢 396624289
展开
 我来答
风若远去何人留
2014-01-24 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20403 获赞数:450142
专业C/C++软件开发

向TA提问 私信TA
展开全部

首先 你这个公式不对

这个公式名字叫做基姆拉尔森计算公式

其正确公式为

W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1) mod 7

原本公式得到的是0-6 星期六到星期日 这个不是很常规的方式 常规为0-6为星期日到星期一

不过按照原本公式计算也同样可以


其次 有几处你的理解不正确

 1. 月份是1/2两个月时 不是简单的改成13 14 而是当做上一年的13 14月,即这种情况下 年需要减一

这样 1998-2-18 需要y=1997 m=14 d=18

 2. 中括号里面的内容只取整数 指的是整数部分 即499.5取499 而不是400

这样程序如下

#include <stdio.h>
void main()
{
int y=2013,m=1,d=1;
int w;
char *weekday[7]={"Saturday", "Sunday","Monday","Tuesday","Wednesday","Thursday","Firday"};

printf("input data: year month day:");
scanf("%d%d%d", &y,&m,&d);

if (m==1 || m==2)
m+=12, y--;
w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+2)%7;
printf("%s\n",weekday[w]);
}
追问
高手啊,都发现我的解释错误了。。。但是这个程序不用指针可以写吗?
追答

字符数组怎么样?

#include <stdio.h>
void main()
{
int y=2013,m=1,d=1;
int w;
char weekday[7][20]={"Saturday", "Sunday","Monday","Tuesday","Wednesday","Thursday","Firday"};

printf("input data: year month day:");
scanf("%d%d%d", &y,&m,&d);

if (m==1 || m==2)
m+=12, y--;
w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+2)%7;
printf("%s\n",weekday[w]);
}
逍遥升008
2014-01-24 · 超过49用户采纳过TA的回答
知道小有建树答主
回答量:211
采纳率:66%
帮助的人:62.4万
展开全部
#include<stdio.h>
void main()
{
int N,y,d,m;
printf("输入年月日:");
scanf("%d,%d,%d",&y,&m,&d);
if(m==1||m==2)
m+=12;

N = d + 2*m + 3*(m+1)/5 + y +y/4 - y/100 + y/400+ 2;
int anw;
anw=(N+6)%7;
printf("星期%d\n",anw);
}
我自己写的,你检查一下,
更多追问追答
追问
可以把中文都改成英文吗  就是输出的结果printf那儿改成英文 我新手不知道怎么改。。就是如果输出结果改成英文 岂不是要printf7个结果还要用到语句?
追答
没看明白你什么意思。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友91dd6d4
2014-01-24 · 超过16用户采纳过TA的回答
知道答主
回答量:140
采纳率:0%
帮助的人:29.3万
展开全部
好几年没有接触C了 都是用一些高级语言 简单 有效
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式