您的位置:首页 > 其它

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

2015-05-09 19:35 246 查看
/*
*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了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: