- 题目描述:
- 输入年、月、日,计算该天是本年的第几天。
- 输入:
- 包括三个整数年(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语句,解决。