C语言:计算某天是某年的第几天

要求:通过键盘输入年月日,计算该日是这一年的第几天

代码:

#include <stdio.h> // 引入标准输入输出库  
  
void main() // 主函数,程序的入口  
{  
    int month_day[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 定义并初始化一个数组,存储每个月的天数(注意:这里二月初始化为28天,未考虑闰年)  
    int year, month, day, *p; // 定义四个整型变量,year表示年份,month表示月份,day表示日期,p是一个指向整型的指针  
    p = month_day; // 将指针p指向month_day数组的首地址  
  
    printf("请输入年月日:"); // 输出提示,要求用户输入年月日  
    scanf("%d-%d-%d", &year, &month, &day); // 从标准输入读取用户输入的年月日,并存储到对应的变量中  
  
    for (int i = 0; i < month; i++) // 循环,从1月到用户输入的月份前一个月  
    {  
        day += p[i]; // 将之前月份的天数累加到day变量中  
    }  
  
    // 判断是否为闰年  
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) // 判断闰年的条件:能被4整除但不能被100整除,或者能被400整除  
    {  
        if (month >= 3) // 如果是闰年且月份大于或等于3(即包含2月),则2月有29天  
            day++; // 因此需要给day加1  
    }  
  
    printf("%d年的第%d天", year, day); // 输出结果,显示输入的日期是该年的第几天  
}

结果:

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非洲养老号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值