C语言算法实例014:计算某日是该年的第几天

实例014:计算某日是该年的第几天

  • 实例说明:
    编写一个计算天数的程序,用户从键盘中输入年、月、日,在屏幕中输出此日期是该年的第几天。

  • 实现过程:

#include<stdio.h> 

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

int number(int year, int m, int d)
{
    int sum =0, i, j, k, a[12]=
    {
        31,28,31,30,31,30,31,31,30,31,30,31
    };
    int b[12]=
    {
        31,29,31,30,31,30,31,31,30,31,30,31
    };
    if(leap(year))
        for(i=0; i<m-1; i++)
            sum +=b[i];
    else
        for(i=0; i<m-1; i++)
            sum +=a[i];
    sum +=d;
    return sum;
}

void main()
{
    int year, month, day, n;
    printf("请输入年-月-日\n");
    scanf("%d-%d-%d",&year,&month,&day);
    n=number(year,month,day);
    printf("第%d天\n",n);
}
  • 技术要点:
    1.判断输入的年份是否是闰年,通过自定义函数leap()来进行判断,该函数的核心就是判断条件为能被4整除但是不能被100整除,或能被400整除。
    2.如何求该日期是该年的第几天,可以通过将12个月的每个月的天数存储到数组中,其中因为闰年2月的天数有别于平年,故采用两个数组a和b来进行存储。然后,当输入的年份是平年,月份为m时,就累加存储着平年每月天数的数组的前m-1个元素,最后将累加结果加上输入的日,便得到了最终结果。闰年算法类似。
    3.编程提示:warning: return type of ‘main’ is not `int’
    可以去除void。

  • 实验结果:
    这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值