C++题目。希望好心人能给我做出来,20分不承敬意,谢谢呢

编写一个程序,只要输入年月日,就能回答那天是星期几。[实验提示]1、已知公元1年1月1日是星期一2、算法提示:如果输入的是2006年3月12日,计算方法是(1)先计算从公... 编写一个程序,只要输入年月日,就能回答那天是星期几。
[实验提示]
1、 已知公元1年1月1日是星期一
2、 算法提示:如果输入的是2006年3月12日,计算方法是
(1) 先计算从公元0001年初(0001-1-1)到2005年末(2005-12-31)共多少天,注意其中有闰年,闰年是366天,平年是365天。闰年的判断条件满足(见教材例3.8题):
(( year%4==0 && year%100!=0 )!!(year%400==0))
(2) 然后再计算2006年1月1日到2006-3-12是多少天。注意同样判断本年度是否闰年,即二月份是28天还是29天。
(3) 上述两部分相加即从公元0001年初(0001-1-1)到2006年末(2006-3-12)的天数,用该天数模7(total%7)即得到星期数。
2、用户多次循环输入数据并计算可采用while语句实现:
//首先输入三个数据:
cout<< "please enter year month day: "
cin>>year>> month>>day; //首先输入三个数: 年 月 日
while(year!= 0 && month!=0 && month!= 0)
{
…… //具体计算语句
//本次循环结束前再次输入三个数据(年 月 日),为下次循环计算做准备
cout<< "please enter year month day: "
cin>>year>> month>>day;
}

[测试数据]
1、1年1月1日是星期一
2、2年1月1日是星期二
3、用上机日期
4、2000年1月1日是星期六
展开
 我来答
hemanzi2006
2007-12-19 · 超过49用户采纳过TA的回答
知道答主
回答量:123
采纳率:0%
帮助的人:0
展开全部
我以前做过相似的题,是要求写一个年历,你的题和它差不多,经过修改,应该可以满足题意!

#include<stdio.h>
main()
{
long int year,day,ruiday=0,i;
int moon,j,t,day2,moon2,flag;
char *week[7]={"日","一","二","三","四","五","六"};
void head(int moon);
int rui(long year);
printf("请输入年份: ");
scanf("%ld",&year);
printf("请输入月份: ");
scanf("%d",&moon2);
printf("请输入日号: ");
scanf("%d",&day2);
day=365*(year-1);
for(i=4;i<year;i+=4)
if(i%100!=0||i%400==0)
ruiday++;
day+=ruiday;
day+=1;//转换成现在的公历;
for(moon=1;moon<=12;moon++,day+=t)
{
i=day%7;
if(moon==1||moon==3||moon==5||moon==7||moon==8||moon==10||moon==12)
t=31;
else
t=30;
if(moon==2)
if(rui(year)==1)
t=29;
else t=28;
if(moon==moon2) flag=(day2+i)%7;
}
printf("%d年%d月%d日是: 星期",year,moon2,day2);
if(flag==0) flag=7;
puts(week[flag-1]);
}

int rui(long year)
{
int t=0;
if(year%4==0&&year%100!=0||year%400==0)
t=1;
return t;
}
编程辛苦啊,楼主就给20分,加点吧!
FourQueue
2007-12-19 · TA获得超过1298个赞
知道小有建树答主
回答量:1505
采纳率:0%
帮助的人:885万
展开全部
就20分?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式