请你计算出 x年 y 月 z 日是 x 年的第几天。
注意闰年对答案的影响。
输入格式一行三个整数,x,y 和z。(1583≤x≤2100)。数据保证输入合法。
输出格式一个整数,表示是第几天。
例:
输入
2016 3 1
输出
61
整体思路:首先我们用数组分别记录12个月所含天数,然后用if语句判断是否为闰年,再用if语句判断是否为违规数据;最后用for循环累加月的天数就完成了。
#includeint main() { int year, month, day;定义三个变量分别记录年月日; int i,daybefore = 0; 定义i作为数组的下标,定义daybefore用来记录最终的天数; int a[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };//用数组记录12个月的天数; scanf("%d%d%d", &year, &month, &day);//输入 年 月 日; if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) // 闰年的判断 a[1] = 29; if (month < 1 || month>12 || day < 1 || day > a[month - 1]) // 排除错误输入 printf("data error"); else { for (i = 0; i < month-1; i++) daybefore += a[i]; //累加计算最终天数 printf("%d", day + daybefore); // 输出 今天的第几天; } return 0; }



