三天打鱼两天晒网题目的C++源代码.docx
下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
2.下载的文档,不会出现我们的网址水印。
3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
文档包含非法信息?点此举报后获取现金奖励!
下载文档到电脑,查找使用更方便
15
积分
还剩页未读,继续阅读
关 键 词:三天打鱼
两天晒网
题目
C+
源代码
资源描述:
1.中国有句俗语叫 “三天打鱼两天晒网 ”。某人从 1990年 1月 1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。
根据题意可以将解题过程分为三步:
1)计算从 1990年 1月 1日开始至指定日期共有多少天;
2)由于“打鱼”和“晒网”的周期为 5天,所以将计算出的天数用 5去除;
3)根据余数判断他是在“打鱼”还是在“晒网”;若余数为 1,2,3,则他是在“打鱼”否则是在“晒网”在这三步中,关键是第一步。求从 1990年 1月 1日至指定日期有多少天,要判断经历年份中是否有闰年,二月为 29天,平年为 28天。闰年的方法可以用伪语句描述如下:如果 ((年能被 4除尽且不能被 100除尽)或能被 400除尽)则该年是闰年;否则不是闰年。
/*#includeusing name space std;
int days(structdate day);
struct date
{
int year;
int month;
int day;
};
int days(struct date day)
{
static int day_tab[2][13]= {{0,31,28,31,30,31,30,31,31,30,31,30,31,}, //平均每月的天数
{0,31,29,31,30,31,30,31,31,30,31,30,31,},
};
int i,lp;
lp=day.year%4==0&&day.year%100!=0||day.year%400==0; //判定 year为闰年还是平年,lp=0为平年,非 0为闰年
for(i=1;i0&&day<4)
{
printf("该人当天在打鱼!\n"); //打印结果
printf(fp2,"\n该人当天在打鱼!\n\n");
}
else
{
printf("该人当天在晒网!\n");
printf(fp2,"\n该人当天在晒网!\n\n");
}
} */(此程序运行产生3 error)
2.中国有句俗语叫 “三天打鱼两天晒网 ”。某人从 2007年 1月 1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。
/*includeint fishing(int year,int month,int day);
int main(void)
{
int year,month,day;
printf("请输入一个日期:\n");
scanf("%d%d%d",&year,&month,&day);
fishing(year,month,day);
return 0;
}
int fishing(int year,int month,int day)
{
int n=0;//代表闰年个数
int month1;//代表月数之差
int year_1;//代表年之差换算成天数差
int month_1,day_1;
int sum;//代表某天之后,即从 2007/01/01后的天数
int k;//代表是求模数,0,1,2代表打鱼,3,4代表晒网
//判断是否是闰年,并计算其个数
int m;//计算闰年时使用的参数
int f1,f2,f3;
for(m=1;m<=year;m++)
{
f1=((m%4)==0);
f2=((m%100)==0);
f3=((m%400)==0);
if(f1&&(!f2)||f2&&f3)n++;
}
printf("n:%d\n",n);//检查统计闰年个数是否成功
year_1=(year-2007)*365+n-486;//500代表2007前的闰年个数
//计算月份差
month1=month-1;
switch(month1)
{
case 0: month_1=0; break;
case 1: month_1=31; break;
case 2: month_1=59; break;
case 3: month_1=90; break;
case 4: month_1=120; break;
case 5: month_1=151; break;
case 6: month_1=181; break;
case 7: month_1=212; break;
case 8: month_1=243; break;
case 9: month_1=273; break;
case 10: month_1=304; break;
case 11: month_1=334; break;
} //计算天数差
day_1=day-1; //计算总天数后
sum=year_1+month_1+day_1;
printf("year:%d\n",year_1);//检查统计年数是否成功
printf("month:%d\n",month_1);//检查统计月数是否成功
printf("day:%d\n",day_1);//检查统计天数是否成功
printf("sum:%d\n",sum);//检查统计总天数是否成功
k=sum%5;//求模,0,1,2代表打鱼,3,4代表晒网
printf("%d\n",k);//检查统计求模是否成功
switch(k)
{
case 0: printf("今天该打鱼\n"); break;
case 1: printf("今天该打鱼\n"); break;
case 2: printf("今天该打鱼\n"); break;
case 3: printf("今天该晒网\n"); break;
case 4: printf("今天该晒网\n"); break;
}
return 0;
}*/(此程序不懂)
3. “三天打鱼两天晒网 ”正确程序如下:
#includeint main()
{
int year,month,day,j,a,b,c,d,e,f;
scanf("%d%d%d",&year,&month,&day);
a=0;b=0;
for(j=1990;j=1&&f<=3)printf("fishing\n");
if(f==0||f==4)printf("sleeping\n");
return 0;
}
展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:三天打鱼两天晒网题目的C++源代码.docx
链接地址:https://www.renrendoc.com/p-46982393.html