題目1070:今年的第幾天?
時間限制:1 秒
內存限制:32 兆
特殊判題:否
提交:5369
解決:2989
- 題目描述:
-
輸入年、月、日,計算該天是本年的第幾天。
- 輸入:
-
包括三個整數年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
- 輸出:
-
輸入可能有多組測試數據,對於每一組測試數據,輸出一個整數,代表Input中的年、月、日對應本年的第幾天。
- 樣例輸入:
-
1990 9 20 2000 5 1
- 樣例輸出:
-
263 122
- 答疑:
- 解題遇到問題?分享解題心得?討論本題請訪問:http://t.jobdu.com/thread-7794-1-1.html
- 思路比較簡單,直接上代碼:
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int leapyear(int y){ if(y%400==0) return 1; else if(y%100==0) return 0; else if(y%4==0) return 1; else return 0; } int main(){ int y,m,d; int day1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int day2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; while(cin>>y>>m>>d){ if(leapyear(y)){ int sum=0; for(int i=1;i<m;i++){ sum+=day2[i]; } cout<<sum+d<<'\n'; } else{ int sum=0; for(int i=1;i<m;i++){ sum+=day1[i]; } cout<<sum+d<<'\n'; } } return 0; }
- 總結:int sum;之後做sum+=操作時,會出錯,初始化時要設定初始值(比如0)。