**

问题描述:

**

中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++语言实现程序解决问题。
基本要求:1.程序风格良好(使用自定义注释模板),提供友好的输入输出。
提高要求:1.输入数据的正确性验证。
2.使用文件进行数据测试。如将日期 20100101 20111214
等数据保存在in.txt文件中,程序读入in.dat文件进行判定,并将结果输出至out.txt文件。

**

分析:

**

1.判断输入的数据是否合法;
2.计算2010年1月1日到输入日期一共有多少天,并根据闰年的定义判断其中闰年的存在,利用for语句与switch语句实现计算总天数;
3.“打鱼”和“晒网”的周期为五天,所以将总天数除以五求得余数以判断该天是在打鱼还是在晒网,利用switch语句输出结果。

**

实现代码:

**

#include<stdio.h>
#include<string.h>
void main(){int year,month,day,day2,allday=0;
int day1=31,day3=31,day5=31,day7=31,day8=31,day10=31,day12=31;
int day4=30,day6=30,day9=30,day11=30;
//freopen("debug\\in.txt","r",stdin);//读取in.txt中的数据
printf("请输入年月日(用空格隔开):\n");
scanf("%d%d%d",&year,&month,&day);//输入年月日
printf("输入的年月日为%d年%d月%d日\n",year,month,day);
if(year%400==0||(year%4==0&&year%100!=0))
day2=29;
else
day2=28;//判断是否为闰年
if(year<2010){printf("输入年份错误,请重新输入:\n");
scanf("%d%d%d,&year,&month,&day");
}//判断是否为合法的年份
if(month>12){printf("输入月份错误,请重新输入:\n");
scanf("%d%d%d,&year,&month,&day");
}//判断是否为合法的月份
if(day>31||month==4&&day>30||month==6&&day>30||month==9&&day>30||month==11&&day>30){printf("输入日期有误,请重新输入:\n");
scanf("%d%d%d,&year,&month,&day");
}//判断是否为合法的日期
if(day2==29&&day>29||day2==28&&day>28)
printf("输入日期有误,请重新输入:\n");
scanf("%d%d%d,&year,&month,&day");//判断2月日期是否合法
int i,x=0,y=0;
for(i=2010;i<year;i++){if(year%400==0||(year%4==0&&year%100!=0))
y+=366;
else
y+=365;
}
switch(month){case 1:x=0;break;case 2:x=day1;break;case 3:x=day1+day2;break;case 4:x=day1+day2+day3;break;case 5:x=day1+day2+day3+day4;break;case 6:x=day1+day2+day3+day4+day5;break;case 7:x=day1+day2+day3+day4+day5+day6;break;case 8:x=day1+day2+day3+day4+day5+day6+day7;break;case 9:x=day1+day2+day3+day4+day5+day6+day7+day8;break;case 10:x=day1+day2+day3+day4+day5+day6+day7+day8+day9;break;case 11:x=day1+day2+day3+day4+day5+day6+day7+day8+day9+day10;break;case 12:x=day1+day2+day3+day4+day5+day6+day7+day8+day9+day10+day11;break;
}
allday=allday+x+y+day;//计算经历了多少天
int z;
z=allday%5;
switch(z){case 0:printf("在晒网\n");break;case 4:printf("在晒网\n");break;case 1:printf("在打鱼\n");break;case 2:printf("在打鱼\n");break;case 3:printf("在打鱼\n");break;}//输出结果
freopen("debug\\out.txt","w",stdout);
switch(z){case 0:printf("在晒网\n");break;case 4:printf("在晒网\n");break;case 1:printf("在打鱼\n");break;case 2:printf("在打鱼\n");break;case 3:printf("在打鱼\n");break;//在out.txt中输出结果
}
fclose(stdin);
fclose(stdout);
}

“三天打鱼两天晒网”程序的c语言实现相关推荐

  1. 三天打鱼,两天晒网程序(C语言/C++)

    中国有句俗语叫 "三天打鱼两天晒网 ".某人从 1990年 1月 1日起开始"三天打鱼两天晒网",问这个人在以后的某一天中是"打鱼"还是&q ...

  2. 三天打鱼两天晒网,用java语言实现

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import ja ...

  3. 中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”, 问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++语言/java/python实现程序解决问题

    /* 中国有句俗语叫"三天打鱼两天晒网".某人从2010年1月1日起开始"三天打鱼两天晒网", 问这个人在以后的某一天中是"打鱼"还是&qu ...

  4. 三天打鱼两天晒网的c语言程序,c语言“三天打鱼两天晒网”

    算法设计与问题分析 计算从20100101日起开始"三天打鱼两天晒网",求出在以后的某一天是"打鱼"or"晒网" 即1.计算从2010010 ...

  5. 三天打鱼两天晒网的c语言程序,回归经典之C语言《三天打鱼两天晒网》

    //一个人从2000年1月1日开始三天打鱼两天晒网,用户输入一个日期,判断该人这天在打鱼还是晒网 #include void input(); void sum(int y,int m,int d); ...

  6. python天天向上的力量三天打鱼两天晒网_017 示例3-天天向上的力量-Go语言中文社区...

    一."天天向上的力量"问题分析 1.1 天天向上的力量 基本问题:持续的价值 一年365天,每天进步1%,累计进步多少呢? (1.01^{365}) 一年365天,每天退步1%,累 ...

  7. 三天打鱼两天晒网C语言实现

    文章目录 一.问题描述 二.问题分析与算法设计 总结 一.问题描述 中国有句俗语叫"三天打鱼两天晒网".某人从2010年1月1日起开始"三天打鱼两天晒网",问这 ...

  8. 中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用java实现程序解决问题。

    一丶中国有句俗语叫"三天打鱼两天晒网".某人从2010年1月1日起开始"三天打鱼两天晒网",问这个人在以后的某一天中是"打鱼"还是" ...

  9. 中国有句俗语叫“三天打鱼两天晒网”(C语言实现)

    打鱼还是晒网问题(C语言实现) 1. 问题描述: 中国有句俗语叫"三天打鱼两天晒网".某人从1990年1月1日起开始"三天打鱼两天晒网",问这个人在以后的某一天 ...

最新文章

  1. python 取list 里面最大的数或者最小数
  2. ubuntu 下安装nginx
  3. Android之日期时间选择器使用方法
  4. LoRa无线通信模块在运动安全上的物联网运用
  5. webservice 心得
  6. This is probably not a problem with npm. There is likely additional logging
  7. java调优随记-java对象大小
  8. 自媒体标题不会写?用这个工具,一键生成爆文标题
  9. FileUtils工具类
  10. 我的招聘网——用户登录模块设计与实现
  11. Origin 2019b 图文安装教程及下载(附安装包)
  12. 单片机STM32入门——(2)按键控制
  13. 关于某某大学校园网认证系统的一些工作
  14. pycharm无法识别turtle库中函数名的解决方法
  15. 腾讯云DevOps流水线的应用与实践
  16. 【原创】用VMware 8安装Ubuntu 12.04详细过程(图解)
  17. 语音信号处理复习2、语音声学基础
  18. 用C#制作有提示窗体的日程管理器
  19. word快速删除段与段之间的回车键(段落标记)
  20. **史上最全的倾斜测量/实景三维应用汇总**

热门文章

  1. 传奇架设超详细图文教程——GOM引擎
  2. InputStream 中available 的使用
  3. EDEM入门学习教程—界面介绍
  4. 软件流程和管理(八):质量管理
  5. JLink、JTAG接口详细图解
  6. 【生物信息学-单细胞】基因转录调控网络转录因子调控网络分析
  7. 网页上表格复制到excel只能选html格式,怎么将网页中的表格快速复制到EXCEL中
  8. android 拨号上网流程
  9. windows powershell批量添加dns记录
  10. c语言发牌器(斗地主)