首页 > 其他分享 >4.19 1.3

4.19 1.3

时间:2023-04-19 20:45:08浏览次数:26  
标签:totalDay 1.3 4.19 天数 31 int year year%

一、问题描述

从1990年1月1日开始三天打鱼两天晒网,以后的某一天是打鱼还是晒网?

二、分析

1、计算1.1到指定天数有几天

2、周期为5天,用天数除以5

3、用余数判断是打鱼还是晒网

1 2 3 都为打鱼,4 0为晒网

先利用循环求出1.1到指定天数有几天,还要考虑闰年情况(闰年二月29天,平年二月28天)。

用year%4==0&&year%100!=0||year%400==0来判断是否为闰年

 三、代码

#include<iostream>
using namespace std;
typedef struct date{
int year,month,day;
}DATE;
int runyear(int);
int countDay(DATE);//定义
void main()
{
DATE today;//指定日期
int totalDay;//指定日期到1990.1.1的天数
int result;//余数
cout<<"请输出指定日期"<<endl;
cin>>today.year>>today.month>>today.day;
totalDay=countDay(today);
result=totalDay%5;
if(result>0&&result<4)
{cout<<"今天打渔";}
else
{cout<<"今天晒网";}
}
//接下来判断是否为闰年
int runYear(int year)
{
if((year%4==0&&year%100!=0)||(year%400==0))//闰年
{return 1;}
else
{return 0;}//平年
}
//计算天数
int countDay(DATE currentDay)
{
int perMonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//每月的天数数组
int totalDay=0,year,i;
for(year=1990;year<currentDay.year;year++)
//求指定日期前每年的天数累加
{
if(runYear(year))
totalDay=totalDay+366;
else
totalDay=totalDay+365;
}
if(runYear(currentDay.month))
perMonth[2]+=1;//将本年的月的天数加进去
for(i=0;i<currentDay.month;i++)
totalDay+=perMonth[i];//将本月的天数加进去
totalDay+=currentDay.day;
return totalDay;//返回
}

 四、结果

 

标签:totalDay,1.3,4.19,天数,31,int,year,year%
From: https://www.cnblogs.com/yindantong/p/17334542.html

相关文章

  • 4.19总结
    SQL学习一、1.注释:单行--或者#注释内容(Mysql特有)--注意空格多行注释/*注释*/showdatabases;--查询当前Mysql下有多少个数据库的名称。Mysql数据库的SQL语句不区分大小写,关键字建议使用大写。二、数据库的创建createdatabasesdb1;--创建dropdatabasesdb1......
  • 4.19打卡
    一、问题描述:对N个整数(数据由键盘输入)进行升序排列。二、设计思路:对于N个数因其类型相同,我们可利用数组进行存储。冒泡排序是在两个相邻元素之间进行比较交换的过程将一个无序表变成有序表。冒泡排序的思想:首先,从表头开始往后扫描数组,在扫描过程中逐对比较相邻两个元素的大小。......
  • 每日总结-23.4.19
    /*noticeview*更新消息是否查看过的状态为“已查看”*输入参数为:id(String)即消息id*返回类型为boolean,true为修改成功,false为未有记录或修改失败**/publicbooleanview(Stringid)throwsException{Pd_noticepd=quer......
  • 4.19打卡
    问题描述:给定一个长度为n的数组,找出其中的最大元素和最小元素的差值。假设数组中的元素范围为[-10000,10000]。设计思路:1.直接排序,取出最大值和最小值,计算其差值;2.遍历数组,同时维护最大值和最小值,最后计算其差值。 程序流程图:1.直接排序,取出最大值和最小值,计算其差值2.......
  • 4.19
    #include<stdio.h>typedefstructdate{intyear;intmonth;intday;}DATE;intcountDay(DATE);intrunYear(int);voidmain(){DATEtoday;inttotalDay;intresult;printf("pleaseinput指定日期包括年,月,日如:1999131\n");scanf("%d%d%d",&toda......
  • 建民打卡日记4.19
    一、问题描述二、设计流程 1.定义两个双精度浮点数a,b=1000;     2.循环5次从后往前计算存款数;     3.循环内a=b/(1+12*0.0063)       b=a+1000;三、流程图设计四、代码实现#include<iostream>usingnamespacestd......
  • 4.19每日学习总结
    昨天基本完成了科技政策查询的功能完善,今天继续完善科技政策查询的页面展示,并上交,有时间的话继续完成团队项目的任务,遇到的问题是对于老师要求的功能网络上没有直接的方法,更多的需要自己去尝试。 ......
  • 4.19打卡
    #include<iostream>#include<iomanip>#include<cmath>usingnamespacestd;intmain(){enumcolor{red,yellow,blue,white,black};inti,j,k;intn=0;for(i=red;i<=black;i++){for(j=i;j<=black;j++)......
  • 1.3 打鱼还是晒网
    第一部曲:思路:输入日期,然后求出从1990年1月1日距离目标日期的的天数,最后再取余5,根据余数判断打鱼还是晒网。第二部曲: 第三部曲:cin>>year>>month>>day;用函数封装求到目标日期的天数,result。对result取余,判断是否打鱼还是晒网。第四部曲:#include<iostream>usingnamespacest......
  • Ubuntu 18.04 LTS 环境下 接收函数 hk 1.3 安装及配置
    hk下载1$wgethttp://www.eas.slu.edu/People/LZhu/downloads/hk1.3.tar#下载2$tar-xvfhk1.3.tar#解压3$mvhk/home/wangjq/opt/hk3$cdhk4$makeclean5$rm.gmtcommands4#删除临时文件修改Makefile1$viMakefile#添加如下语句 GMT_INC=-I......