}
}
}
6.编程序,使用户任意输入一个年份以及该年的1月1日是星期几,而后任意指定某一天(再输入该年的任意一个月份日期),由程序计算出这一天是星期几。
注意,2月份闰年为29天,非闰年为28天;可被4整除而不可被100整除的年份、或者可被400整除的年份均为闰年。
思考:
利用元年元月元日(即1年1月1日)是星期一的已知事实,可对程序进行改造,让用户仅输入一个表示日期的年月日,则程序就应计算出那一天是星期几。
程序代码:
#include"stdafx.h"
#include
usingnamespacestd;
boolIfLeapYear(long);
intmain(intargc,char*argv[])
{
longlYear=0;
intiWeek=0;
cout<<"Pleaseinputtheyearandwhatthefirstdayis:
"<cin>>lYear>>iWeek;
intiMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
cout<<"Pleaseinputonedayoftheyear:
(mon&&day)"<intiMon=0,iDay=0,iSumDay=0;
cin>>iMon>>iDay;
for(inti=0;i{
iSumDay+=iMonth[i];
}
if(IfLeapYear(lYear))
{
iSumDay++;
}
intiLast=iSumDay%7;
if(iWeek+iLast>7)
{
cout<<"Thatdayis星?
期¨²"<}
cout<<"Thatdayis星?
期¨²"<return0;
}
boolIfLeapYear(longyear)
{
if(year%4==0&&year%100!
=0||year%400==1)
{
returntrue;
}
returnfalse;
}
7.罗马数字问题转换
程序代码:
#include"StdAfx.h"
#include
#include
usingnamespacestd;
intmain()
{
cout<<"请输入一个包含“MDCLXVI”的字符串:
"<stringst1="";
intiSum=0;//十进制数字之和;
intiData[7]={1000,500,100,50,10,5,1};
charchA[7]={'M','D','C','L','X','V','I'};
cin>>st1;
for(inti=0;i<7;++i)
{
if(st1[i]==chA[i])
{
iSum+=iData[i];
}
else
{
cout<<"Youhaveinputawrongletter!
"<iSum=0;//iSum置零;
break;
}
}
cout<return0;
}
把十进制转换成罗马数制
程序代码:
#include"StdAfx.h"
#include
#include
usingnamespacestd;
intmain()
{
intiNumber=0;
cout<<"请输入一个十进制数字(<10000):
"<cin>>iNumber;
intiData[7]={1000,500,100,50,10,5,1};
/*charchA[7]={'M','D','C','L','X','V','I'};*/
intiM=iNumber/1000;
intiD=(iNumber-iM*1000)/500;
intiC=(iNumber-iM*1000-iD*500)/100;
intiL=(iNumber-iM*1000-iD*500-iC*100)/50;
intiX=(iNumber-iM*1000-iD*500-iC*100-iL*50)/10;
intiV=(iNumber-iM*1000-iD*500-iC*100-iL*50-iX*10)/5;
intiI=iNumber-iM*1000-iD*500-iC*100-iL*50-iX*10-iV*5;
for(inti=0;i{
cout<<"M"<<'';
}
for(i=0;i{
cout<<"D"<<'';
}
for(i=0;i{
cout<<"C"<<'';
}
for(i=0;i{
cout<<"L"<<'';
}
for(i=0;i{
cout<<"X"<<'';
}
for(i=0;i{
cout<<"V"<<'';
}
for(i=0;i{
cout<<"I"<<'';
}
cout<cout<cout<<"恭喜你,做出来了!
"<return0;
}
8.编写程序求解骑士巡游问题:
程序代码:
#include"StdAfx.h"
#incl