圣矢网络重庆网站建设优化推广公司,别人做的网站需要提供些什么给我们,安卓应用软件开发,龙岗网站建设推广目录
问题描述
思路分析
数据结构构建部分
计算部分
代码实现
结果测试 此问题解决方法不唯一#xff0c;这里介绍的是一种使用数组和循环实现的简单办法 问题描述 思路分析
问题的要求是输入一个日期#xff0c;计算这是当年的第几天——要解决这个问题#xff0c;逻…目录
问题描述
思路分析
数据结构构建部分
计算部分
代码实现
结果测试 此问题解决方法不唯一这里介绍的是一种使用数组和循环实现的简单办法 问题描述 思路分析
问题的要求是输入一个日期计算这是当年的第几天——要解决这个问题逻辑就是将输入日期当月之前整月的天数加起来再加上当月的天数得到的就是我们想要的结果 我们分步来完成 首先完成对输入的要求
创建三个整型变量分别用来存储年月日 按照题目的要求读取并存储到变量中
int year 0, month 0, day 0;
scanf(%d %d %d, year, month, day); 数据结构构建部分 其次想要将整月的天数加起来需要考虑到每个月的天数各不相同
这里用一个最简单的方法——用数组来实现对不同月份天数不同的处理
int arr[] { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
注意这里创建了一个整型数组并且第一个元素为0后面12个元素分别为12个月份不同的天数
之所以要在第一个元素放数组0是因为这样可以使数组每个元素的下标对应月份 不过需要注意的一个点是——考虑到年份的不同闰年的2月比正常情况下要多一天
所以额外进行一个判断如果年份是闰年数组下标为2的元素值加一
关于闰年的判断有一个小口诀——四年一闰百年不闰四百年再闰
if (((year % 4 0) (year % 100 ! 0)) || (year % 400 0))
{arr[2] 1;
} 以上已经完成了所需的数据结构
计算部分
接下来就是完成对天数的相加来计算出输入日期是第几天 首先创建一个变量来存储天数
然后用一个循环将输入的月份之前的整月天数加起来
在循环结束之后将循环内得到的计算结果再加上当月的天数就是某年某月某日所处在当年的天数啦
int days 0;
for (int i 0; i month; i)
{days arr[i];
}
days day;
printf(%d\n, days); 最后别忘记输出运算结果
完整代码如下 代码实现
#include stdio.h
int main()
{int year 0, month 0, day 0;scanf(%d %d %d, year, month, day);//以下是数据结构的构建int arr[] { 0,31,28,31,30,31,30,31,31,30,31,30,31 };//存储每个月的天数if (((year % 4 0) (year % 100 ! 0)) || (year % 400 0)){arr[2] 1; //如果该年是闰年2月天数1}//以下是计算部分int days 0;for (int i 0; i month; i){days arr[i]; //将整月天数相加}days day; //再加上当月天数printf(%d\n, days);return 0;
}
结果测试