每天打卡一小时 第二天 编程四部曲

第一部曲 自然语言
三个函数
- 判断闰年 2.计算日期 3.判断 打鱼还是晒网
第一步 输入 指定的日期
第二步 在 2函数作为3函数的参数 进行输出
比较困难的是2函数
2函数需要1函数进行辅助
用1函数进行 闰年判断
如果相差一年 就相差365天
相差一个月 就根据相差的第几个月 相差几天
定义一个 月份的数组 一月就是31天 以此类推 通过for循环判断 是第几个月份
相差天数 就直接相减了 不需要考虑其他
第二部曲 流程图

第三部曲 伪代码
#include <iostream>
using namespace std;
int date(int year, int month, int day);
void f(int day);
int run(int year);
int main()
{
int year, month, day;
cout << "请输入当前日期: ";
cin >> year; cin >> month; cin >> day;
f(date(year, month, day));
}
int date(int year, int month, int day)
{
int a = 0;
int month1[13] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
for (int i = 0; i + 1990 < year; i++)
{
if (run(year))
{
a += 366;
}
else
{
a += 365;
}
}
for (int i = 1; i < month; i++)
{
if (run(year))
{
a += month1[i-1] + 1;
}
else
{
a += month1[i-1];
}
}
for (int i = 1; i < day; i++)
{
a++;
}
return a;
}
void f(int day)
{
int y = day % 5;
if (y == 1 || y == 2 || y == 3)
{
cout << "打鱼";
}
if (y == 4 || y == 0)
{
cout << "晒网";
}
}
int run(int year)
{
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
return 1;
}
else
{
return 0;
}
}
第四部曲 总结
复杂问题简单化经典题目,通过分解问题进行解决问题,使用更多的函数去解决问题

浙公网安备 33010602011771号