第十一周项目五——当年第几天(繁琐)

本文介绍了一个计算给定年月日是该年内的第几天的函数实现,适用于编程初学者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
 *Copyright  (c)  2014,烟台大学计算机学院 
 *All rights reserved. 
 *文件名称: test.cpp
 *作        者:陈丹 
 *完成日期:2014年11月8日 
 *版本号:v1.0 
 *
 *问题描述:定义一个函数,其参数为年、月、日的值,返回这一天为该年的第几天。
 *输入描述:输入年月日 
 *程序输出:输出是第几天
 */
#include<iostream>

using namespace std;

int days(int y, int m, int d);

int main()

{

     int year, month, day;

     cin>>year>>month>>day;

     cout<<days(year, month, day)<<endl;

     return 0;

}

int days(int y, int m, int d)

{
    if ((y%4==0&&y%100!=0)||(y%400==0))
        switch (m)
    {
        case 1:d=d;break;
        case 2:d=d+31;break;
        case 3:d=d+60;break;
        case 4:d=d+91;break;
        case 5:d=d+121;break;
        case 6:d=d+152;break;
        case 7:d=d+182;break;
        case 8:d=d+213;break;
        case 9:d=d+244;break;
        case 10:d=d+274;break;
        case 11:d=d+305;break;
        case 12:d=d+335;break;
    }


    else
        switch (m)
    {
        case 1:d=d;break;
        case 2:d=d+31;break;
        case 3:d=d+59;break;
        case 4:d=d+90;break;
        case 5:d=d+120;break;
        case 6:d=d+151;break;
        case 7:d=d+181;break;
        case 8:d=d+212;break;
        case 9:d=d+243;break;
        case 10:d=d+273;break;
        case 11:d=d+304;break;
        case 12:d=d+334;break;
    }
 return d;
}
运行结果
### 关于第届蓝桥杯单片机比赛试题及解答 第届蓝桥杯单片机比赛的相关资料可能不直接存在于所提供的引用中,但可以通过分析已有的信息推测其结构和形式。通常情况下,蓝桥杯单片机竞赛的题目会围绕以下几个方面展开:硬件电路设计、程序编写(C语言为主)、调试技巧以及实际应用案例。 #### 题目概述 蓝桥杯单片机比赛的核心在于考察参赛者对单片机系统的综合掌握能力。以第六届为例,涉及的内容包括但不限于 hex 文件生成与烧录、主函数逻辑实现以及整体工程文件的设计[^1]。这些知识点同样适用于第届的比赛内容。 对于具体题目及其解答,可以参考以下几点: 1. **Hex 文件** Hex 文件是单片机编程中的重要组成部分,用于将编译后的二进制数据下载至目标芯片。在比赛中,可能会要求考生完成特定功能模块最终导出对应的 hex 文件作为成果提交之一。 2. **主函数实现** 主函数部分体现了算法思想的应用实践过程。例如通过设置不同的中断服务例程来控制外部设备的动作序列;或者利用循环语句配合条件判断达成预定任务目的等等。 3. **定时器配置** 定时器操作属于高频考点之一。从第十三届国赛情况来看,“必须要用到三个定时器”的需求表明此类问题的重要性益凸显出来[^3]。尽管这是针对较晚届次所提到的要求,但对于早期赛事来说也同样存在类似挑战——即如何合理安排多个计数/捕获单元协同工作从而满足复杂场景下的精确延时或其他特殊信号处理需求。 以下是基于上述描述给出的一个简化版代码框架示例供参考学习之用: ```c #include <reg52.h> // 假设P1口连接LED灯组, P2接按键输入端 sbit LED = P1^0; sbit BUTTON = P2^7; void delay(unsigned int time){ unsigned int i,j; for(i=0;i<time;i++) for(j=0;j<1275;j++); } void main(){ while(1){ if(BUTTON == 0){ // 当检测到按钮按下时点亮LED LED = ~LED; // 切换状态 delay(50); // 加入适当延迟防止抖动影响 } } } ``` 此段伪代码展示了基本交互流程:监测指定IO管脚电平变化进而触发相应动作反应机制。当然实际情况往往更加繁琐些,需考虑更多边界情况处理细节等问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值