首页 > 编程语言 >c++打卡第八天

c++打卡第八天

时间:2023-04-18 20:13:19浏览次数:42  
标签:1990 闰年 第八天 int 31 30 ye% c++ 打卡

一、问题描述。

     我国古代有一种说话叫三天打鱼两天晒网,如果一个人从1990年1月1日开始,开始三天打鱼两天晒网,问输入一个年月日,此时他是在打鱼还是晒网。

二、设计思路。

①、我们可以通过计算从输入日期到1990年1月1日总共有多少天,总天数除余周期五,如果结果为1.2.3则此人此时正在打鱼,如果结果为4.5,那么此人正在晒网。

②、我们可以通过定义函数来求输入的日期到目标日期的总数。

③、由于涉及到闰年问题,则需要定义函数来判断是否为闰年。

④、当加算到本年的时候,我们可以定义月份数组,并且注意闰年二月是29天,平年二月28天。

⑤、加到本月的时候,加入本月的日期天数即可。

三、流程图实现。

五、代码实现。

#include<iostream>
using namespace std;
int run(int ye)
{
    if((ye%4==0&&ye%100!=0)||(ye%400==0))
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
int to(int y,int m,int d )
{
    int mo[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int sum=0;
    for(int i=1990;i<y;i++)
    {
        if(run(i))
        {
            sum=sum+366;
        }
        else
        {
            sum=sum+365;
        }
    }
    if(run(y))
    {
        mo[2]=mo[2]+1;
    }
        for(int j=1;j<m;j++)
        {
                 sum=sum+mo[j];
        }
        sum=sum+d;
        return sum;
}
int main()
{
    int year,month,day;
    cin>>year;
    cin>>month;
    cin>>day;
    int total=0;
    total=to(year,month,day);
    cout<<"总天数为:"<<total<<endl; 
    int result=total%5;
    if((result==1)||(result==2)||(result==3))
    {
        cout<<"此人在打鱼"<<endl; 
    }
    else 
    {
        cout<<"此人在晒网"<<endl; 
    }
    return 0;
}

五、结果实现。

 

标签:1990,闰年,第八天,int,31,30,ye%,c++,打卡
From: https://www.cnblogs.com/zzqq1314/p/17330906.html

相关文章

  • 建民打卡日记4.18
    一、问题描述二、设计思路三、程序流程图四、代码实现#include<iostream>#include<math.h>usingnamespacestd;intmain(){ doublenewt(floata,floatb,floatc,floatd); floata,b,c,d,x; cin>>a>>b>>c>>d; x=newt(a,b,......
  • 每天打卡一小时 第八天 编译四部曲
     第一部曲自然语言可以直接套用for循环用选择语句进行选择输出可以运用剩余定理求出公式第二部曲代码一代码二  第三部曲代码代码一 #include<iostream>usingnamespacestd;intmain(){intN;cin>>N;for(inti=7;i<N;i++){......
  • 深度解读C++引用
    什么是引用引用不是新定义一个变量,而是给已存在对象取了一个别名,从语言逻辑角度看,引用不占用内存空间,而与被引用的对象共用同一块内存空间。使用引用时,需要注意以下几点:引用在定义时必须初始化;一个变量可以有多个引用;C++中的引用一旦初始化便不能转移;在语法逻辑角度,引用不占用额外......
  • 4.18打卡
       2.设计思路      ①.定义A,B,C      ②套入循环,先让A选择一本书      ③在A选完书的前提下让B选择一本书      ④在A和B选完书的前提下让C选择一本书      ⑤将A,B,C分别选择的值输出,代表分别选择的书; #include<bits/stdc++.h>......
  • 0001笔记【并行计算】CUDA在现代C++中如何运用?看这一个就够了
    目录SM(流多处理器)和板块(block)一个板块会被调度到一个SM上,直到执行结束常用函数cudaMalloc在显存上分配内存cudaMallocHost在主存上分配锁页内存cudaMemcpy在主存和显存之间拷贝数据cudaMallocManagerd统一内存优化时间依赖和空间依赖线程太多不行:防止寄存器打翻(registerspill)......
  • 周二打卡
    1.问题描述:编写程序,输出一个菱形图案。例如,输入行数为5,输出如下菱形:```*************```2.设计思路:我们可以分别处理菱形上半部分和下半部分。菱形上半部分为一组由空格和*组成的串,且每组中空格数和*数之和是固定的,下半部分同理。因此我们可以循环输出。3.程序流程......
  • c++初阶入门(持续更新)
    1.命名空间目的:解决c语言的缺陷,命名冲突。#include<stdio.h>intrand=0;intmain(){printf("%d",rand);}上面这段程序是可以运行的但是!#include<stdio.h>#include<stdlib.h>intrand=0;intmain(){printf("%d",rand);}那么上面的代码就会报错。因为stdlib.h......
  • 打卡5
    斐波那契数列#include<stdio.h>intmain(){  longfib1=1,fib2=1;  for(inti=1;i<=15;i++)  {    printf("%12d%12d",fib1,fib2);    if(i%2==0)    printf("\n");    fib1=fib1+fib2;    fib2=fib1+fib2;  }  re......
  • 【内附源码和文档】基于C++14异步蒙特卡洛工具函数
    Simple-Monte-Carlo-Tool-Function这是一个使用C++实现的简单的异步蒙特卡洛算法工具函数C++标准:C++14使用autores=MonteCarlo(sample_nums,check_sample_funtion,generate_sample_funtion,…args);doublep=res.get();std::cout<<p<<std::endl;sample_nums:需要生成的样......
  • C++基础1: 命名空间
    0.前言C++是在C语言基础之上的一门语言,所以学习C++的第一步是思考C++是如何优化C语言设计中的一些不足,如作用域,IO,函数,指针,宏等这些内容同时也是为之后学习C++类和对象打基础,下面说一下C++是如何优化C语言中的作用域1.命名空间在说明命名空间的概念和如何优化......