概述
一:题目:中国有句俗话叫“三天打渔,两天晒网”,某人从2010年1月1日期开始“三天打渔,两天晒网” 问这个人在以后的某一天是“打渔”还是“晒网”。用C或着C++语言实现程序解决问题。
二: 在我的程序,主要是先输入年月日,就算在一年中在几月之前一共有多少天,就比如说在1月之前有0天,2月之前有31天,以此类推。这里要注意的是,2月在平年和闰年的天数是不一样的,先假设是平年,2月有28天,然后判断所输入的年份至2010年间是否有闰年,有一个闰年就再加1天。
最后计算出所输入的日期距2010年1月1日一共多少天,总的天数对5求余。求得的余数1、2、3表示“今天该打渔”,0、4表示“晒网”。
程序代码:
#include<stdio.h>
#include<math.h>
int main()
{
int year,month,day;
int i,j;
int days;
int sum=0;
printf("please input year: "); //输入年月日
scanf("%d",&year);
printf("please input month: ");
scanf("%d",&month);
printf("please input day: ");
scanf("%d",&day);
switch(month)
{
case 1 :days=0;break; //一年中在1月之前有0天
case 2 :days=31;break;
case 3 :days=59;break;
case 4 :days=90;break;
case 5 :days=120;break;
case 6 :days=151;break;
case 7 :days=181;break;
case 8 :days=212;break;
case 9 :days=243;break;
case 10 :days=273;break;
case 11 :days=304;break;
case 12 :days=334;break;
default :printf("输入格式有误: n");
break;
}
for(i=2010;i<year;i++) //输入的月份从2010年开始
{
if(i%400==0||(i%4==0&& i%100!=0))
days+=366; //闰年366天
else
days+=365; //平年365天
}
if((year%4==0&&year%100!=0)||year%400==0)
if(month>2)
sum=days+day+1;
else
sum=days+day;
else
sum=days+day;
printf("sum= %dn",sum);
j=sum%5; //求模,1、2、3代表打渔,0,、4代表晒网
switch(j)
{
case 1:printf("今天该打渔n");break;
case 2:printf("今天该打渔n");break;
case 3:printf("今天该打渔n");break;
case 0:printf("今天该晒网n");break;
case 4:printf("今天该晒网n");break;
}
return 0;
}
这次的程序设计,总的来说只能算的上是还行,程序基本能达到普通要求,但提高要求远远达不到,遇到很多困难,有的已经解决了,但是还并不完美,程序设计过程中参考了李军民老师主编的<<C/C++语言程序设计同步进阶经典100例与习题指导>>,这本书给予我很大的帮助。
最后
以上就是着急枫叶为你收集整理的题目:中国有句俗话叫“三天打渔,两天晒网”,某人从2010年1月1日期开始“三天打渔,两天晒网” 问这个人在以后的某一天是“打渔”还是“晒网”。用C或着C++语言实现程序解决问题。的全部内容,希望文章能够帮你解决题目:中国有句俗话叫“三天打渔,两天晒网”,某人从2010年1月1日期开始“三天打渔,两天晒网” 问这个人在以后的某一天是“打渔”还是“晒网”。用C或着C++语言实现程序解决问题。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复