提高第18课时,实践3,当年第几天(数组方案)

来源:互联网 发布:程序员一年经验工资 编辑:程序博客网 时间:2024/06/10 06:03
/**Copyright(c) 2015/5/8 CSDN博客*All rights reserved.*文件名称:main.c*作    者:金叶*完成日期:2015/5/8*版本号:V1.0*问题描述:项目3-当年第几天(数组方案)*当年第几天中定义一个函数,其参数为年、月、日的值,返回这一天为该年的第几天。要求在main函数中输入年月日,然后调用这个函数求值,并在main函数中输出结果。*/#include <stdio.h>int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //定义一年中的月份天数,第1个是0天的初值int date (int d ,int m, int y);int main(){   int iDay,iMonth,iYear;//定义 日 月 天   int iDate;   do{   printf("输入年 月 日:");   scanf("%d %d %d",&iYear,&iMonth,&iDay);   iDate=date(iYear,iMonth,iDay);   printf("这是该年的第%d天\n\n\n",iDate);   }   while (1);   return 0;}int date(int y ,int m,int d){    int i;    int iDate=0;    int iDate1=0;    for (i=0;i<m;i++){        iDate+=month[i];    }    iDate1=iDate+d;    if (((y%4==0&&y%100!=0)||(y%400==0))&&m>=3){        iDate1+=1;        }    return iDate1;}





之前有个小小的BUG 


闰年的2月29日 这一天不会被算进去 修改了一下  现在应该OK了

0 0