三天打鱼,两天晒网
来源:互联网 发布:手机淘宝删除聊天记录 编辑:程序博客网 时间:2024/04/25 18:17
中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++语言实现程序解决问题。//**三天打鱼,两天晒网程序**//作者:软件工程1502班 汪强//创建时间:2017年3月10日//主要功能:求出渔夫在2010.1.1后的每一天在打鱼还是晒网////***************************#include<stdio.h>#include<stdlib.h>void file1(int year,int month,int day)//向文件中写入数据{ FILE *in; if((in=fopen("file1.dat","w"))==NULL) { printf("无法打开文件!\n"); exit(0); }fprintf(in,"%d %d %d\n",year,month,day);fclose(in);}void file2(int year,int month,int day)//从文件中读入数据{ FILE *in; if((in=fopen("file1.dat","r"))==NULL) { printf("无法打开此文件!"); exit(0); }fscanf(in,"%d %d %d",&year,&month,&day);fclose(in);}int months(int year,int month)//months函数用来求当前年1月1日到当前年指定月份的总天数{ int i; static int days; int month1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},month2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};//定义两个存各个月份天数的数组 if((year%4==0&&year%100!=0)||(year%400==0))//判断当前年是闰年还是平年 { for(i=0;i<month;i++) days+=month2[i]; } else { for(i=0;i<month;i++) days+=month1[i]; } return days;}int sumday(int year,int month,int day)//求出到当前年的总天数 { int i,days; for(i=2010;i<year;i++) { if((i%4==0&&i%100!=0)||(i%400==0)) days+=366; else days+=365; } days=days+months(year,month)+day-1; return days; } void juge()//用来判断输入错误及判断渔夫在打鱼还是晒网{int year,month,day; int days; int i,j; int month1[12]={31,28,31,30,31,30,31,31,30,31,30,31},month2[12]={31,29,31,30,31,30,31,31,30,31,30,31}; printf("Please enter year month and day:"); scanf("%d %d %d",&year,&month,&day); file1(year,month,day);//文件函数的调用 file2(year,month,day);///文件函数的调用 FILE *out;if((out=fopen("file2.dat","w"))==NULL){ printf("无法打开此文件\n"); exit(0);} if((year%4==0&&year%100!=0)||(year%400==0)) { if((year<2010)&&(month<1||month>12)) {fprintf(out,"%d年%d月%d日 Year and month are error.\n",year,month,day); printf("%d年%d月%d日 Year and month are error.\n",year,month,day); } else { if((year<2010)&&(day>month2[month-1])) { fprintf(out,"%d年%d月%d日 Year and day are error.\n",year,month,day); printf("%d年%d月%d日 Year and day are error.\n",year,month,day);} else { if(year<2010) { fprintf(out,"%d年%d月%d日 Year is error.\n",year,month,day); printf("%d年%d月%d日 Year is error.\n",year,month,day);} else { if(month<1||month>12) { fprintf(out,"%d年%d月%d日 Month is error.\n",year,month,day); printf("%d年%d月%d日 Month is error.\n",year,month,day);} else { if(day>month2[month-1]) { fprintf(out,"%d年%d月%d日 Day is error.\n",year,month,day); printf("%d年%d月%d日 Day is error.\n",year,month,day);} else {days=sumday(year,month,day);//调用函数sumday() if(days%5==0||days%5==1||days%5==2) { fprintf(out,"%d年%d月%d日渔夫在打鱼。\n",year,month,day);//输出到文件上 printf("%d年%d月%d日渔夫在打鱼。\n",year,month,day);} else { fprintf(out,"%d年%d月%d日渔夫在晒网。\n",year,month,day);//输出到文件上 printf("%d年%d月%d日渔夫在晒网。\n",year,month,day);} } } } } } }else { if((year<2010)&&(month<1||month>12)) { fprintf(out,"%d年%d月%d日 Year and month are error.\n",year,month,day); printf("%d年%d月%d日 Year and month are error.\n",year,month,day);} else { if((year<2010)&&(day>month1[month-1])) { fprintf(out,"%d年%d月%d日 Year and day are error.\n",year,month,day); printf("%d年%d月%d日 Year and day are error.\n",year,month,day);} else { if(year<2010) { fprintf(out,"%d年%d月%d日 Year is error.\n",year,month,day); printf("%d年%d月%d日 Year is error.\n",year,month,day);} else { if(month<1||month>12) { fprintf(out,"%d年%d月%d日 Month is error.\n",year,month,day); printf("%d年%d月%d日 Month is error.\n",year,month,day);} else { if(day>month1[month-1]) { fprintf(out,"%d年%d月%d日 Day is error.\n",year,month,day); printf("%d年%d月%d日 Day is error.\n",year,month,day);} else {days=sumday(year,month,day); if(days%5==0||days%5==1||days%5==2) { fprintf(out,"%d年%d月%d日渔夫在打鱼。\n",year,month,day); printf("%d年%d月%d日渔夫在打鱼。\n",year,month,day);} else { fprintf(out,"%d年%d月%d日渔夫在晒网。\n",year,month,day); printf("%d年%d月%d日渔夫在晒网。\n",year,month,day);} } } } } }} fclose(out);}int main()//主函数{printf("\t\t\t\t\t题目:三天打鱼,两天晒网\n");juge();return 0; }
1 0
- 三天打鱼两天晒网
- 三天打鱼两天晒网
- 三天打鱼两天晒网
- 三天打鱼,两天晒网
- 三天打鱼,两天晒网
- 三天打鱼两天晒网
- 三天打鱼,两天晒网
- 三天打鱼两天晒网
- 三天打鱼两天晒网
- 三天打鱼两天晒网
- 三天打鱼两天晒网
- 三天打鱼两天晒网
- 三天打鱼,两天晒网
- 三天打鱼两天晒网
- “三天打鱼两天晒网”
- 三天打鱼,两天晒网
- 三天打鱼两天晒网
- 三天打鱼两天晒网
- 分层 对数据库 事件的回滚和提交 事件
- 吐槽之Android Studio设置默认NDK路径(bug乎?)
- 单链表中实现O(1)时间复杂度删除节点
- 创建线程方法
- 阶段一( •̀ ω •́ )y
- 三天打鱼,两天晒网
- 爱油科技基于SpringCloud的微服务实践
- C++第二次上机作业
- 《设计模式》-- 享元模式
- 随机漫步——散点图
- task_1_2_1
- 行程编码RLE java实现
- 算法提高快速幂(快速幂算法详解)
- ZSTU-4273-玩具【RMQ】