C语言实例 004 计算某天是该年第几天

实例要求:编写一个计算天数的程序,用户从键盘中输入年、月、日,在屏幕中输出此日期是该年的第几天。运行结果如下:

实现步骤

1.自定义两个函数 leap()用来判断输入年份是否为闰年.number()用来计算输入的日期为该年的第几天

leap()函数代码如下:

int leap(int a)										/*自定义函数leap用来指定年份是否为闰年*/
{
    if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)	/*闰年判定条件*/
        return 1;									/*是闰年返回1*/
    else
        return 0;									/*不是闰年返回0*/
}

number()函数代码如下:

int number(int year, int m, int d)         /*自定义函数number计算输入日期为该年第几天*/
{
    int sum = 0, i, a[12] =
    {
        31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
    };										/*数组a存放平年每月的天数*/
    int b[12] =
    {
        31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
    };										/*数组b存放闰年每月的天数*/
    if (leap(year) == 1)					/*判断是否为闰年*/
        for (i = 0; i < m - 1; i++)
            sum += b[i];					/*是闰年,累加数组b前m-1个月份天数*/
    else
        for (i = 0; i < m - 1; i++)
            sum += a[i];					/*不是闰年,累加数组a钱m-1个月份天数*/
    sum += d;								/*将前面累加的结果加上日期,求出总天数*/
    return sum;								/*将计算的天数返回*/
}

2.main()函数作为程序的主函数输入参数

void main()
{
    int year, month, day, n;							/*定义变量为基本整型*/
    printf("请输入年月日\n");
    scanf("%d%d%d", &year, &month, &day);				/*输入年月日*/
    n = number(year, month, day);						/*调用函数number*/
    printf("第%d天\n", n);
}

注意:

1.判断输入年份是否为闰年的函数:能被4整除但不能被100整除,或者能被400整除

2.这里用两个数组存储平年和闰年各个月份的天数,当月份为m时,就累加存储着月份天数的数组的m-1个元素,将累加结果加上输入的日.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值