当前位置: 首页 > news >正文

C语言 写一个函数days,实现某日在本年中是第几天计算。

写一个函数days,

【定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题(即将闰年情况包含在内)】

由主函数将年、月、日传递给days函数,计算后将日子数传回主函数输出。

​#include <stdio.h>typedef struct {int year;int month;int day;
} Date;int isLeapYear(int year) {if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)return 1;return 0;
}int daysOfMonth(int month, int year) {int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};if (month == 2 && isLeapYear(year))return 29;return days[month - 1];
}int dayOfYear(Date date) {int days = 0;for (int i = 1; i < date.month; i++) {days += daysOfMonth(i, date.year);}days += date.day;return days;
}int main() {Date date;printf("Enter year, month, day: ");scanf("%d %d %d", &date.year, &date.month, &date.day);int day = dayOfYear(date);printf("The day is the %dth day of the year.\n", day);return 0;
}[点击并拖拽以移动]
​

程序实现

#include <stdio.h>typedef struct {int year;int month;int day;
} Date;int isLeapYear(int year) {if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)return 1;return 0;
}int daysOfMonth(int month, int year) {int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};if (month == 2 && isLeapYear(year))return 29;return days[month - 1];
}int days(Date date) {int days = 0;for (int i = 1; i < date.month; i++) {days += daysOfMonth(i, date.year);}days += date.day;return days;
}int main() {Date date;printf("Enter year, month, day: ");scanf("%d %d %d", &date.year, &date.month, &date.day);int day = days(date);printf("The day is the %dth day of the year.\n", day);return 0;
}

代码解释:

1. 定义 `days` 函数:编写 `days` 函数,实现第1题的计算逻辑。该函数接受年、月、日作为参数,并返回该日期在一年中的第几天。

2. 主函数调用:在主函数中,读取用户输入的年、月、日,并调用 `days` 函数计算天数,最后将结果输出。

http://www.lryc.cn/news/410290.html

相关文章:

  • 2-50 基于matlab的遗传模拟退火算法的聚类算法
  • 电脑屏幕录制软件,分享4款(2024最新)
  • 机械学习—零基础学习日志(高数16——函数极限性质)
  • 初识c++——list
  • angular入门基础教程(八)表单之双向绑定
  • 【C++】C++中的find方法介绍
  • JVM—HotSpot虚拟机对象探秘
  • AI测试:人工智能模型的核心测试指标,分类判别、目标检测、图像分割、定量计算分别有哪些指标?
  • 探索LLM世界:新手小白的学习路线图
  • Linux基础命令大全 持续更新中......
  • CPU的起源与发展历程
  • 【C语言】 二叉树创建(结构体,先序遍历,中序遍历,后续遍历)
  • 【和相同的二元子数组】python刷题记录
  • 【单片机毕业设计选题24087】-基于北斗系统的智能路灯
  • [Docker][Docker常用命令]详细讲解
  • onlyoffice用nginx反向代理
  • JavaScript字符串转换成base64编码方法
  • 25.惰性队列
  • ControlNet on Stable Diffusion
  • 源码编译安装,及nginx服务控制、监控块
  • 在react中使用wangeditor富文本
  • 拉提查合创5步玩转git工具协作代码开发
  • React特点
  • 鸿蒙(HarmonyOS)自定义Dialog实现时间选择控件
  • 学习008-02-04-08 Localize UI Elements(本地化UI元素)
  • 如何系统的学习C++和自动驾驶算法
  • typescript 定义类
  • 认证授权概述和SpringSecurity安全框架快速入门
  • docker常用命令集锦
  • 学习Java的日子 Day56 数据库连接池,Druid连接池