C语言解决“三天打鱼两天晒网”的问题?

news2025/1/10 16:25:31

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

    根据题意可以将解题过程分为三步:
    (1)计算从1990年1月1日开始至指定日期共有多少天?
    (2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除。
    (3)根据余数判断他是“打鱼”还是“晒网”。
        若余数为1,2,3,则他是在“打鱼”,否则他是在“晒网”。

    算法设计:
            该算法为数值计算算法,要利用循环求出指定日期距1990年1月1日
            的天数,并考虑到循环过程中的闰年情况。闰年二月为29天,平年
            二月为28天。
            判断闰年的方法是:如果(能被4整除并且不能被100整除)或者
            (能被400整除)则该年是闰年;否则不是闰年。

#include"stdio.h"

struct DATA   //创建年月日类型的数据
{
    int year;
    int month;
    int day;
};

int PanDuan(int year)
{
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
    {
        return 1;
    }
    else
        return 0;
}

int JiSuan(struct DATA d, int today)
{
    int year = 0;
    int arr[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };  // 一年12个月,每个月的天数。
    ///  年的天数相加
    for (year = 1990; year < d.year; year++)  
    {
        if (PanDuan(year))   // 判断闰年还是平年,修改二月的天数
            arr[2] = 29;
        else
            arr[2] = 28;

        //把一年的天数加起来
        int j = 0;
        for (j = 0; j < 13; j++)
        {
            today += arr[j];
        }

    }

    //  把月的天数也加起来
    int month = 0;
    for (month = 0; month <= d.month-1; month++)
    {
        today += arr[month];
    }

    //  把天数加起来
    today += d.day;

    return today;
}

int main()
{
    struct DATA d;
    
    int today = 0;   // 距今天的总天数
    printf("请输入截止时间:");
    scanf("%d %d %d", &d.year, &d.month, &d.day);
    int day = JiSuan(d,today);
    if ((day % 5) > 0 && (day % 5) < 4)
        printf("距离今天共计:%d天,今天打鱼",day);
    else
        printf("距离今天共计:%d天,今天晒网",day);
}

程序运行结果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/655968.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vite 是怎么兼容老旧浏览器的?你以为仅仅依靠 Babel?

目录 一、前言 二、那个午后 三、跟webpack构建产物到底哪里不一样&#xff1f; 1. 准备工作 2. 构建工具版本说明 3. 构建工具配置项说明 4. 构建产物 5. Vite 的原生模块化能力 6. “魔鬼藏在细节中” 四、总结 一、前言 对前端开发者来说&#xff0c;Vite 应该不算…

Gurobi解决优化问题

Gurobi1介绍 Gurobi是一种优化软件&#xff0c;用于解决各种数学规划和整数规划问题。它提供了高性能的数学规划求解器&#xff0c;可用于最大化或最小化目标函数的线性规划、混合整数规划、二次规划、约束规划等问题。 Gurobi具有强大的求解能力和高效的算法&#xff0c;可以…

SpringBoot+Durid+dynamic-datasource实现多数据源分布式事务

SpringBootDuriddynamic实现多数据源分布式事务 引言&#xff1a; 在现代的应用程序中&#xff0c;使用多个数据源来处理不同的业务需求已成为常态。然而&#xff0c;处理多数据源之间的分布式事务是一个复杂的问题。本文将介绍如何使用Spring Boot、Druid和dynamic-datasourc…

java娱乐新闻系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目wap

一、源码特点 java 娱乐新闻系统是一套完善的java web wap信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

python---------bs4爬取数据的一种神器

作者前言 欢迎小可爱们前来借鉴我的gtieehttps://gitee.com/qin-laoda 目录 Beautiful Soup的简介 解析⼯具对⽐ BeautifulSoup的基本使⽤ 解析器 搜索⽂档树 CSS常⽤选择器介绍 select和css选择器提取元素 _______________________________________________ 前面我已经…

MongoDB快速实战与基本原理-01

一、MongoDB介绍 1、什么是MongoDB MongoDB是 一个文档数据库&#xff08;以 JSON 为数据模型&#xff09; &#xff0c;由C语言编写&#xff0c;旨在 为 WEB应用提供可扩展的高性能数据存储解决方案。 文档来自于“ JSON Document”&#xff0c;并非我们一般理解的 PDF&am…

Nik Color Efex 滤镜详解(2/5)

交叉冲印 Cross Processing 提供多种选项来处理 C41 - E6&#xff08;用幻灯片显影液处理彩色底片&#xff09;和 E6 - C41&#xff08;用彩色底片显影液处理幻灯片&#xff09;。 方法 Method 选择预设。 强度 Strength 控制滤镜效果程度。 黑暗对比度 Dark Contrasts 使用新…

这本书解开了我心中多年的疑惑,也推荐给你

我对地理一直比较感兴趣&#xff0c;中学时知识掌握的比较扎实&#xff0c;分得清洋流走向、季风信风、世界渔场等等&#xff0c;长期闲置不用已经遗忘的差不多。当时看地理真的是地理&#xff0c;现在看地理&#xff0c;不单单只是地理&#xff0c;还有政治、军事、经济、文化…

港科夜闻|香港科大工学院陈浩教授获选2023年亚洲青年科学家

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大工学院陈浩教授获选2023年亚洲青年科学家。亚洲青年科学家基金项目于2022年推出&#xff0c;是一项私人资助的研究奖学金计划&#xff0c;旨在鼓励和支持亚洲区内的青年科学家进行推动变革的创新研究&#xff0c…

springCloudAlibaba组件-Nacos-服务注册与心跳机制(二)

文章目录 nacos服务注册流程图专业术语服务注册执行流程 nacos服务注册流程图 专业术语 1.服务注册&#xff1a;为了将所有的微服务都方便管理&#xff0c;需要将自身的信息&#xff08;ip地址、端口号、服务名称&#xff09;以http请求方式调用nacos注册中心接口都放到nacos服…

有趣的数学 求和符号Σ (sigma)简述

一、简单相加 符号∑&#xff08;sigma&#xff09;通常用于表示多个项的总和。这个符号通常伴随着一个索引&#xff0c;该索引变化以包含总和中必须考虑的所有术语。 例如&#xff0c;݊第一个整数的和可以用以下方式表示&#xff1a; 或者&#xff0c;这两种表示意思都是一样…

【JS】中 ?.、??、??= 的用法和含义

今天分享几个处理空值简单的方法&#xff0c;避免使用三目运算、与或、if else时增加冗余的代&#xff0c;希望对大家有帮助。 可选链(?.) let a; let b a.?age; 含义&#xff1a; 可选链&#xff0c;只有当a存在,同时 a 具有 age 属性的时候,才会把值赋给b,否则就会将 u…

【FPGA入门】第二篇、ISE软件的使用

目录 第一部分、新建工程 第二部分、添加顶层文件 第三部分、添加管脚约束文件 第四部分、生成bit文件 第五部分、连接开发板&#xff0c;下载bit文件 第六部分、总结 第一部分、新建工程 第一步、如果提前建立了工程文件夹&#xff0c;那么这里就需要去掉生成子文件夹的…

字符串--const类型限定符、字符处理函数(修改首字母的大小写)、数值字符串向数值得转换

目录 一、const类型限定符 二、字符处理函数 三、数值字符串向函数值转换 一、const类型限定符 通过采用指针或数组作函数参数&#xff0c;可使调用者获得修改后的数据&#xff0c;但有时我们只希望将数据传到被调函数的内部&#xff0c;而并不希望它们在函数内被修改&…

Spring6 JdbcTemplate和事务

文章目录 1、JdbcTemplate1.1、简介1.2、准备工作1.3、实现CURD①装配 JdbcTemplate②测试增删改功能③查询数据返回对象④查询数据返回list集合⑤查询返回单个的值 2、声明式事务概念2.1、事务基本概念①什么是事务②事务的特性 2.2、编程式事务2.3、声明式事务 3、基于注解的…

AI无处不在,科技改变生活:开放原子全球开源峰会参会感悟

目录 前言 英特尔的开源之路 拥抱人工智能 AIGC的浪潮之巅 全链路AI解决方案 极致性能优化 结束语 前言 2023年开放原子全球开源峰会 目前中国源代码贡献量已达到世界第二&#xff0c;开源软件开发者数量也已突破800万&#xff0c;居全球第二。在众多开发者的关注下&…

2.部署Keystone服务

在OpenStack的框架体系中Keystone的作用类似于一个服务总线&#xff0c;为OpenStack提供身份管理服务&#xff0c;包括用户认证&#xff0c;服务认证和口令认证&#xff0c;其他服务通过Keystone来注册服务的Endpoint&#xff08;端点&#xff09;&#xff0c;针对服务的任何调…

50 最佳实践-安全最佳实践-Libvirt鉴权

文章目录 50 最佳实践-安全最佳实践-Libvirt鉴权50.1 简介50.2 开启libvirt鉴权50.3 管理SASL 50 最佳实践-安全最佳实践-Libvirt鉴权 50.1 简介 用户使用libvirt远程调用功能时&#xff0c;如果不进行任何鉴权校验&#xff0c;所有连接到主机所在网络的第三方程序都可以通过…

一道北大强基题背后的故事(四)——数学之美,美在哪里?

早点关注我&#xff0c;精彩不错过&#xff01; 在前面文章中&#xff0c;我们重点聊了[((1 sqrt(5)) / 2) ^ 12]这道题可能的弯路&#xff0c;出题思路和这道题设计巧妙的结论&#xff0c;相关内容请戳&#xff1a; 一道北大强基题背后的故事&#xff08;三&#xff09;——什…

MTK 平台相机bringup流程

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 一、Camera 框架介绍二、Camera Bringup 需要配置的文件三、复盘总结 一、Camera 框架介绍 Camera 的框架分为 Kernel 部分和 hal 部分&#xff0c;其中…