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

来源:百度知道 编辑:UC知道 时间:2024/06/25 19:59:12
编写一个程序,只要输入年月日,就能回答那天是星期几。
[实验提示]
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日是星期六

我以前做过相似的题,是要求写一个年历,你的题和它差不多,经过修改,应该可以满足题意!

#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=(da