1. 程式人生 > >分支-13. 計算天數(15)

分支-13. 計算天數(15)

本題要求編寫程式計算某年某月某日是該年中的第幾天。

輸入格式:

輸入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)給出日期。注意:閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。閏年的2月有29天。

輸出格式:

在一行輸出日期是該年中的第幾天。

輸入樣例1:
2009/03/02
輸出樣例1:
61
輸入樣例2:
2000/03/02
輸出樣例2:
62

#include<stdio.h>  

//二維陣列存放閏年和平年每月天數
int t[13][2]= { 0,0,
                  31,31,
                  28,29
, 31,31, 30,30, 31,31, 30,30, 31,31, 31,31, 30,30, 31,31, 30,30, 31,31 }; //判斷是否為閏年,true返回1,false返回0 int leap(int x){ return
(x%4==0&&x%100!=0)||(x%400==0); } //計算天數 int day(int a,int b,int c ){ int k=0 ,i,count; if (leap(a)) { k=1;//k用來選擇二維陣列的第一列或第二列即閏年或平年的天數 } for(count=0,i=0;i<b;i++)//迴圈累加至上個月的月末 { count+=t[i][k];//k用來選擇二維陣列的第一列或第二列 } count+=c;//再加上本月已過天數 return count; } int
main() { int y,m,d,sum; scanf("%d/%d/%d",&y,&m,&d); sum=day(y,m,d); printf("%d",sum); return 0; }

C/C++中true返回1,false返回0