C++难题,求达人帮忙做下,自己拿到恼火啊

编写一个程序,只要输入年月日,就能回答那天是星期几。[实验提示]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日是星期六
看不懂,哪位大人继续啊,高分啊··我还可以补充10分
老大我要C++编程的,你帮我整吧,谢谢呢
展开
 我来答
历又
2007-12-24 · TA获得超过300个赞
知道小有建树答主
回答量:726
采纳率:100%
帮助的人:486万
展开全部
/*能求 0001年01月01日(含0001年01月01日这一天也可求)以后的*/
//C++上运行正常 y(年), m(月), d(日)
#include"iostream.h"
void main()
{
while(1)
{
int total=0,y,m,d,j,k,i;
int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31},
b[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
char c[7][3]={"日","一","二","三","四","五","六"};
cout<<"请输入年,月和日:";
cin>>y>>m>>d;
for(j=1;j<y;j++)
{
if((j % 400 == 0)||(j % 4 == 0)&&(j % 100 != 0))
total+=366;
else total+=365;
}
if((y % 400 == 0)||(y % 4 == 0)&&(y % 100 != 0))
{
for(i=0;i<m;i++)
{
total+=a[i];
}
}
else
{
for(i=0;i<m;i++)
{
total+=b[i];
}
}
k=(total+d)%7;
cout<<"\n"<<y<<"年"<<m<<"月"<<d<<"日是:星期"<<c[k]<<
"\n***********************************\n\n\n\n";
}
}
paykka
2025-08-05 广告
Paykka 适合有全球贸易需求的企业或个人使用,特别是那些涉及东南亚地区交易、需要高效收款和结算的用户,以及有小额支付需求的商家。它能满足这些用户在跨境交易中的各种支付需求。... 点击进入详情页
本回答由paykka提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式