Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2538949
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2010-08-11 17:42:16

    给出年,月,日。计算该日是该年的第N天。
    我们可以用一个数组,保存每一个月的天数,然后通过循环去累加天数。如果月份是大于3,则去判断year是否是闰年。如果是则自加一操作。根据此原理,编写代码如下:
 

#include <stdio.h>

int is_leap(int);
int sum_day(int,int,int);
int main(int argc,char *argv[])
{
    
    int year,month,day;
    int i,leap,result = 0;
    printf("please input year,month,day:");
    scanf("%d,%d,%d",&year,&month,&day);
    
    result = sum_day(year,month,day);
        
    printf("%d/%d/%d is the %dth day in year.\n",year,month,day,result);
    system("pause");
    return 0;
}

int sum_day(int year, int month, int day)
{
    int months[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    int i,result = 0;
    for (i = 0; i < month - 1; i++)
    {
        result += months[i];
    }
    result += day;
    
    if (month >= 3)
    {
       if (is_leap(year))
       {
          result ++;
       }
    }
    return result;
}

int is_leap(int year)
{
    int result;
    if ((year % 400 == 0) || (year % 4 ==0 && year % 100 != 0))
    {
       result = 1;
    }
    else
    {
        result = 0;
    }
    return result;
}


阅读(950) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~