三天打鱼,两天晒网

来源:互联网 发布:手机淘宝删除聊天记录 编辑:程序博客网 时间:2024/04/25 18:17
中国有句俗语叫“三天打鱼两天晒网”。某人从201011日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用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