九度-題目1070:今年的第幾天?

題目1070:今年的第幾天?

時間限制:1 秒

內存限制:32 兆

特殊判題:

提交:5369

解決:2989

題目描述:

輸入年、月、日,計算該天是本年的第幾天。

輸入:

包括三個整數年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。

輸出:
輸入可能有多組測試數據,對於每一組測試數據,
輸出一個整數,代表Input中的年、月、日對應本年的第幾天。
樣例輸入:
1990 9 20
2000 5 1
樣例輸出:
263
122
來源:
2003年清華大學計算機研究生機試真題
答疑:
解題遇到問題?分享解題心得?討論本題請訪問: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)。
發佈了26 篇原創文章 · 獲贊 14 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章