题目
本题是中国海洋大学《高级程序设计》2017年秋季编程题第1题。
题目:
输入一个日期,请编程计算这个日期是该年的第几天?
例如输入:2000-2-1
输出:2000年2月1日是2000年的第32天。(10分)
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj
一、解题思路
思路:
1,首先输入年,月,日
2,然后定义一个整形数组,将12个月份的各个天数赋值给数组各个元素,第0个元素暂时赋值为0;
3,for循环从1到当前月份,sum+=数组元素【i】
4,循环完毕后加上当月天数
5,如果月份大于2,判断一下该年是否为闰年,是的话天数+1。
6,按格式输出即可。
二、代码部分
1.引入库
代码如下(示例):
#include<Stdio.h>
2.主函数部分
代码如下(示例):
void main()
{
int year, mouth, day;
int a[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };//平年2月份28天
int i;
printf("请输入一个日期:");
scanf("%d-%d-%d", &year, &mouth, &day);
int sum = 0;
for (i = 1; i < mouth; i++)
sum += a[i];
sum = sum + day;
if (mouth > 2)//月份大于2才计算是否是闰年,因为闰年的2月份有29天
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)//判断闰年:能被4整除不能被100整除,或者直接能被400整除
sum = sum + 1;//闰年的2月份比平年多出一天
printf("%d年%d月%d日是%d年的第%d天。", year, mouth, day,year, sum);
}
三、执行结果
输入:
请输入一个日期:2000-2-1
输出:
2000年2月1日是2000年的第32天。