首页 > 技术文章 > 今年的第几天

dudu-bird 2016-02-15 19:31 原文

题目描述:
  输入年、月、日,计算该天是本年的第几天。
 
输入:
  包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
输出:
  输入可能有多组测试数据,对于每一组测试数据,输出一个整数,代表Input中的年、月、日对应本年的第几天。
样例输入:
  1990 9 20
  2000 5 1
样例输出:
  263
  122
 
#include<stdio.h>
#include<string.h>
int dayofMonth[12][2] = {
    31,31,
    28,29,
    31,31,
    30,30,
    31,31,
    30,30,
    31,31,
    31,31,
    30,30,
    31,31,
    30,30,
    31,31
};//预存每月的天数 
int main(){
    int year=0, month=0, day=0, isLeapYear=0;
    while(scanf("%d %d %d", &year, &month, &day)!=EOF){
     int cnt=0; isLeapYear
= (year%100 != 0 && year%4==0 || year%400==0?1:0);//判断是否为闰年 for(int i=0; i < month-1; i++){ cnt += dayofMonth[i][isLeapYear]; //printf("%d", cnt); } cnt += day; printf("%d\n", cnt); } return 0; }

  水题,但却报了两次错,第一次:[Error]Id returned 1 exit status,去后台把上次编译运行的进程关了,解决。第二次:Output Limit Exceeded,死循环了,修改while语句,解决。

推荐阅读