用C语言编个有趣的程序

来源:百度知道 编辑:UC知道 时间:2024/05/29 04:52:47
中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始

“三天打鱼两天晒网”,问这个人在以后的某一天中是在“打鱼”,还是在“晒网”。

问题分析与算法设计:

1)计算从1990年1月1日开始至指定日期一共有多少天;

2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除;

3)根据余数判断他是在“打鱼”还是在“晒网”:

若余数为1、2、3则他是在“打鱼”,否则是在“晒网”。

说明:这三步中关键是第一步。求从1990年1月1日至指定日期有所少天,要判断

经历年份中是否有闰年,若是闰年,二月为29天,平年为28天。

要求:

1)最终提交的源文件的命名为:CTest.c;执行文件为CTest.exe

2)编码要符合编码规范,编码中的注释这次一律使用中文,注释

量不少于代码行数的10%

3)源码中每个函数体的最大长度不要超过60行,最大列数不要超

过80行

4)独立完成所有编码

5)输入输出时要有合理的提示

6)对输入数据要进行合法性验证,并进行合理提示

7)关于C语言的编码规范请参考附件
(7)关于C语言的编码规范请参考附件 一句删掉 不用看

7)关于C语言的编码规范请参考附件

。。。
附件在哪儿呢??

#include <stdio.h>
void yy(int year,int month,int day)
{
int i,j=month,sum=0;
int a[]={0,31,29,31,30,31,30,31,31,30,31,30,31}; //初始化闰年的12个月份的天数;a[0]不用!
for(i=1990;i<year;i++)
{
if(i%4==0 && i%100!=0 || i%400==0) //闰年;2月29天
{
sum+=366;
}
else //平年;2月28天
{
sum+=365;
}
}
if(year%4==0 && year%100!=0 || year%400==0)
{
while(j>0)
{
sum+=a[j--];
}
sum+=day;
}
else
{
a[2]=28;
while(j>0)
{
sum+=a[j--];
}
sum+=day;
}
printf("\n1990年1月1日起开始“三天打鱼两天晒网”\n");
if(sum%5==1 || sum%5==2 || sum%5==3)
{
printf("渔夫在%d年%d月%d天是打鱼!\n",year,month,day);
}
else
{
printf("渔夫在%d年%d月%d天是晒网!\n",year,month,day);<