C语言每日一题 ----计算日期到天数转换(Day 2)

简介: C语言每日一题 ----计算日期到天数转换(Day 2)

本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。

题目描述:

根据输入的日期,计算是这一年的第几天。保证年份为4位数且日期合法。

输入描述:

输入一行,每行空格分割,分别是年,月,日

输出描述:

输出是这一年的第几天

解题思路:

实现这个问题基本思路很简单,就是遍历数组。

需要注意的是,平年和闰年之间的差别。平年和闰年之间的差别。因此根据用户需求,首先要判断平年还是闰年。

变量含义:

咱们首先定义一个数组,用来存放每一个月的天数,其次定义四个变量,年,月,日以及天数计数器。

monthinfo:数组名(用来存放一年中每个月的天数,以平年为例)

year: 年

month: 月

day: 日

datecount: 天数计数

int monthinfo[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int year, month, day;

具体思路:

闰年的计算是:能被4整除但不能被1整除或者被400整除。

year % 4 == 0 && year % 100 != 0 || year % 400 == 0

如果是闰年,首先让数组下标为1的元素+1;

monthinfo[1]++;

然后遍历数组判断月数(也就是访问数组的第几个下标),找到后用循环对天数实现++操作。

int datecount = 0;
    for (int i = 0; i < month - 1; i++)
    {
        datecount += monthinfo[i];
    }
    datecount += day;

最后day赋值给天数计数变量变量,打印即可。

datecount += day;

代码实现:

#include <stdio.h>
#include <string.h>
int main()
 {
    int monthinfo[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int year, month, day;
    scanf("%d %d %d", &year, &month, &day);
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
        {
         monthinfo[1]++;
        }
    int datecount = 0;
    for (int i = 0; i < month - 1; i++)
    {
        datecount += monthinfo[i];
    }
    datecount += day;
    printf("%d", datecount);
    return 0;
}

结果情况:

合题目情况,问题得到解决。

总结:

本题算是一道简单题,基本思路就是遍历数组,注意到遍历之前首先要判断一个平年闰年情况即可。

文章到这里就要告一段落了,有更好的想法或问题,欢迎评论区留言。

希望今天的练习能对您有所收获,咱们下期见!

相关文章
|
存储 C语言
【C语言刷题每日一题#牛客网HJ73】——计算日期到天数转换(给定日期,计算是该年的第几天)
【C语言刷题每日一题#牛客网HJ73】——计算日期到天数转换(给定日期,计算是该年的第几天)
|
存储 算法 安全
C 语言中的位运算:挖掘底层计算的高效力量
位运算是C语言中直接操作二进制位的一种技术,能高效处理底层数据,广泛应用于优化算法、硬件编程等领域,是掌握C语言高级特性的关键之一。
|
存储 算法 C语言
C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项
本文深入探讨了C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项,并通过案例分析展示了实际应用,旨在帮助读者提高编程效率和代码质量。
668 4
|
11月前
|
编译器 C语言 C++
【C语言程序设计——选择结构程序设计】求输入的日期是该年的第几天(头歌实践教学平台习题)【合集】
本任务要求编写程序,根据用户输入的年月日(以空格或回车分隔),计算并输出该天是该年的第几天,需注意判断闰年。主要内容包括: 1. **任务描述**:实现从键盘输入年月日,计算该天是当年的第几天。 2. **相关知识**: - `switch` 结构的基本语法及使用注意事项。 - 判断闰年的条件:能被4整除但不能被100整除,或能被400整除的年份为闰年。 3. **编程要求**:根据提示补充代码,确保程序正确处理输入并输出结果。 4. **测试说 示例代码展示了如何使用 `switch` 语句和闰年判断逻辑来完成任务。通过此练习,掌握 `switch` 语句的应用及闰年判断方法。
451 0
|
存储 安全 C语言
【C语言刷题每日一题】——求最大公约数(带数学计算过程详解)
【C语言刷题每日一题】——求最大公约数(带数学计算过程详解)
|
存储 C语言
【C语言刷题每日一题】——计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
【C语言刷题每日一题】——计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
|
C语言
C语言---试计算在区间1 到n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?
C语言---试计算在区间1 到n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?
762 1
|
C语言
【C语言刷题系列】计算整数的二进制位中1的个数 (三种方式)
【C语言刷题系列】计算整数的二进制位中1的个数 (三种方式)
|
C语言
C语言-----计算两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
C语言-----计算两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
174 0
|
Serverless C语言
C语言----递归函数,计算一个非负整数的数字之和
C语言----递归函数,计算一个非负整数的数字之和
188 0