三天打鱼两天晒网的C++程序设计题
C-C++语言趣味程序设计编程百例精解(2)
c语言方面毕业设计选题
c语言方面毕业设计选题篇一:C语言课程设计选题C语言课程设计一、设计要求与设计报告设计要求1、任意选定以下一个题目,限3人选的题目可由1-3人完成(用*表示)2、模块化程序设计3、锯齿型程序书写格式4、必须上机调试通过所有题目必须要用到链表,能将生成的文件存储于外部存储器上,并且从外部存储器上可以读写该文件的功能。
设计报告格式:1、设计目的2、总体设计(程序设计组成框图、流程图)3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施5、源程序清单和执行结果:清单中应有足够的注释6、体会。
二、检查要求:1、每个人必须有程序运行结果2、每个人必须交《C语言课程设计报告》和设计程序清单3、课程设计任务必须由个人独立完成,禁止相互抄袭,如有发现,严肃处理三、打分标准:1、根据程序运行结果2、根据《C语言课程设计报告》,学生能对自己的程序面对教师提问并能熟练地解释清楚,以上二项缺一不可3、由于课程设计各题目的难度不一,所以成绩的评定将根据各人完成题目的难度和完成情况的不同,分别评定成绩,如未能完成任何题目,则以不及格计算四、提交时间课程设计任务完成时间(以安排为准),届时上交课程设计报告和程序。
课设题目*题目一:职工信息管理系统设计试设计一职工信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、职工信息录入功能(职工信息用文件保存)--输入3、职工信息浏览功能--输出4、查询或排序功能:(至少一种查询方式)——算法,按工资查询,按学历查询等5、系统进入画面(静态或动画)6、职工信息删除、修改功能(可选项)创新要求在基本要求达到后,可进行创新设计,如对菜单进行美化。
信息描述职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复)。
功能描述1. 录入职工信息并保存2. 显示所有职工信息(以一定的格式)3. 查询职工信息(以一种或多种方式)4. 修改职工信息并保存5. 删除职工信息*题目二:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
C语言趣味程序设计——题目百例
Contest - 2011级C语言课程大作业Start Time: 2012-02-19 16:25:00 End Time: 2012-03-01 22:00:00 Current Time: 2012-2-23 15:51:18 Status:Running Public写在最前:本文档中的题目;在不不同的编译器中可能会有提示错误,呵呵,小小的动动手改下变量的定义就可以运行了………………..由于能力不足..有题目未解决的…或者有错误的我会…认真听取大家的..意见的….呵呵……..有一两个….偷了下懒哦………提供原题目还有本人自己的解答的源代码。
感谢大家的。
建议…………….问题A: 趣味程序设计_狼追兔子时间限制: 1 Sec 内存限制: 128 MB提交: 341 解决: 63[提交][状态][讨论版]题目描述一只兔子躲进了n个环形分布的洞的某一个中。
狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。
以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中?输入有多组测试数据,读取到文件结尾符为止。
每组测试数据输入n(2≤n≤100),即洞穴个数。
输入到文件结尾符为止。
输出兔子可能藏匿的洞。
如果不止一个,按从小到大的顺序输出。
如果不存在,输出空行。
样例输入10815样例输出2 4 7 92 4 5 7 8 9 11 12 14提示用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。
通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。
循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。
#include<stdio.h>#include<string.h>int ok[110];int main(){int n,s,i,find;while(scanf("%d",&n)!=EOF){memset(ok,0,sizeof(ok));for(i=1;i<=200;i++)if(!ok[find=(i*(i+1)/2)%n])if(find==0)ok[n]=1;elseok[find]=1;for(s=0,i=1;i<=n;i++)s+=ok[i];for(i=1,find=0;i<=n;i++)if(!ok[i]){if(find!=(n-s-1)){printf("%d ",i);find++;}elseprintf("%d",i);}printf("\n");}return 0;}问题B: 趣味程序设计_巧夺偶数时间限制: 1 Sec 内存限制: 128 MB提交: 174 解决: 73[提交][状态][讨论版]题目描述桌子上有25颗棋子。
C语言三天打鱼两天晒网
printf("自从1990年1月1日起【三天打鱼两天晒网】\n");
printf("问这个输入的某一天里是【打鱼】还是【晒网】\n");
printf("n=年y=月r=日\n");
printf("\n*******************************************\n");
for(i=0;i<10000000;i++)
{
printf("请输入年月日:");
scanf("%d%d%d",&n,&y,&r);
if(n<1990)
{
printf("\n无效日期,退出程序\n");
break;
}
else
{
if(y<1||y>12)
{Байду номын сангаас
printf("\n无效日期,退出程序\n");
{
printf("\n无效日期,退出程序\n");
break;
}
else if((y==4||6||9||11)&&(r>30||r<1))
{
printf("\n无效日期,退出程序\n");
break;
}
else
{
sum1 = fun1(n,y,r);//函数的调用
sum2 = fun2(n,y,r);
for(i=1990;i<n;i++)
C++编程语言实现“三天打鱼两天晒网”的示例代码
}
std::cout << "总共打鱼:" << totalFish << " 天" << std::endl; std::cout << "总共洒网:" << totalNet << " 天" << std::endl;
以下是使用 C++编程语言实现“三天打鱼两天晒网”的示例代码:
cpp 复制代码
#include <iostream>
int main() { int days; std::cout << "请输入天数:"; std::cin >> days;
int totalFish = 0; int totalNet = 0;
return ; }
这段代码首先会要求用户输入天数,然后使用循环来计算在这些天数内打鱼和洒网的总天 数。根据“三天打鱼两天晒网”的规则,如果天数是 5 的倍数或者余数为 4,就表示是洒网的 天数,否则就是打鱼的天数。最后,程序会输出打鱼和洒网的总天数。
请注意,这只是一个简单的示例代码,实际应用中可能需要更多的逻辑和功能来处理不同的 情况和需求。
C++趣味编程题(含答案)
题目:中国有句俗语叫“三天打鱼两天晒网”。
某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”?自编源代码:#include<iostream>#include<cmath>using namespace std;int main(){int y,m,d,n,sum,a,b,c;cout<<"请输入年月日"<<endl;cin>>y>>m>>d;sum=365*(y-1990)+d;switch(m){case(2):sum+=31;break;case(3):sum+=31+28;break;case(4):sum+=31+28+31;break;case(5):sum+=31+28+31+30;break;case(6):sum+=31+28+31+30+31;break;case(7):sum+=31+28+31+30+31+30;break;case(8):sum+=31+28+31+30+31+30+31;break;case(9):sum+=31+28+31+30+31+30+31+31;break;case(10):sum+=31+28+31+30+31+30+31+31+30;break;case(11):sum+=31+28+31+30+31+30+31+31+30+31;break;case(12):sum+=31+28+31+30+31+30+31+31+30+31+30;break;}a=(y-1600)/400;b=(y-1900)/100;c=(y-1988)/4;if(((y%4==0 && y%100!=0)||y%400==0)&&m>2){sum+=c+a-b;}else if(((y%4==0 && y%100!=0)||y%400==0)&&(m==1||m==2)){sum+=c+a-b-1;}else{sum+=c+a-b;}if(sum%5==0||sum%5==4){cout<<"晒网ing"<<endl<<sum<<endl;}else{cout<<"打鱼ing"<<endl<<sum<<endl;}return 0;}。
C语言课程设计选题
C语言课程设计选题一、c语言课程设计选题如下(每个题目不能超过五人选择)1、课题:设计一个万年历功能要求:1.输入年份,并分段返回全年日历(包括年、月和周)。
2.注意闰年2、课题:设计简单的计算器功能要求:1.通过菜单选择实现。
判断采用加减乘除法。
选择规则后,输入两个要计算的数字并输出计算结果。
3.主题:做一个猜谜游戏。
功能要求:1、计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直到我猜2、猜中后给出所用的时间和评语4、课题:将任一整数转换为二进制形式功能要求:将任意整数转换成二进制形式,输出5。
主题:小学生考试大纲的功能要求:1、电脑随机出10道题,每题10分,程序结束时显示学生得分2、不能有负数3.每个问题有三次输入答案的机会。
当输入错误答案时,提醒学生重新输入,若三次机会结束则输出正确答案4、对于每道题,第一次输入正确答案得10分,第二次输入正确答案得7分,如果你第三次输入正确答案,你会得到5分,否则你不会得到5分。
如果总分超过90分,则显示“智能”,80-90:good70-80:ok60-70:pass60以下:tryagain6.主题:24个游戏功能要求:输入四个一位数,通过加减乘除,允许加入括号,计算出24,显示计算过程,并提示成功信息7、课题:大数相乘功能要求:1.大整数指超过十位的十进制整数。
这里很简单,假设不超过50位。
由于超界溢出,这种大整数在C语言系统中无法直接表达和计算。
您可以使用数组来表示大整数,并在此基础上编写程序来乘以大整数。
8.主题:从十六进制到十进制的转换功能要求:实现输入一个十六进制,转换为十进制的设计9、课题:位数大小排序功能要求:输入一个五位整数,将该整数中的五个值从大到小排序,形成一个新的五位整数,并输出该整数。
10.主题:回文的形成功能要求:取任意十进制整数,将其加回原始整数,得到一个新整数,然后重复上述步骤,最终得到一个回文数。
请进行程序验证。
C语言大赛题目精选(带答案)
牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:
四位的车号刚好是一个整数的平方。请根据以上线索求出车号。
*问题分析与算法设计
按照题目的要求造出一个前两位数相同、后两位数相同且相互间又不同的整数,然后判断该整数是否是另一个整数的平方。
*程序与程序注释
#include<stdio.h>
for(i3=0;i3<=(20-8*i8-5*i5)/3;i3++)
for(i2=0;i2<=(20-8*i8-5*i5-3*i3)/2;i2++){i1=20-8*i8-5*i5-3*i3-2*i2;
term=
2000."0*pow((double)(1+
0."0063*12),(double)i1)
/*计算到期时的本利合计*/
if(term>max){max=term;n1=i1;n2=i2;n3=i3;n5=i5;n8=i8;}}
printf("For maxinumprofit,he should so save his money in a bank:
\\n");printf("made fixed deposit for 8 year:
甲说:
”乙没有偷,是丁偷的。”B+D=1
乙说:
“我没有偷,是丙偷有。”B+C=1
丙说:
“甲没有偷,是乙偷的。”A+B=1
丁说:
“我没有偷。”A+B+C+D=1
其中丁只说了一句话,无法判定其真假,表达式反映了四人中仅有一名是窃贱的条件。
C语言循环语句学案
项目三循环程序设计—打鱼还是晒网任务一while语句学案学生自评教师评分1. 了解循环结构、循环语句2. 掌握while语句和语法形式、执行顺序及用法3. 掌握循环结构的嵌套使用方法【学习重点、难点】1.while语句2. 算法描述。
【学时安排】4学时【学习过程】中国有句俗话叫“三天打鱼两天晒网”。
某人从1990年1月1日开始“三天打鱼两天晒网”,问这个人在1994年3月1日这一天是在“打鱼”,还是“晒网”?一、课前预习及课堂学习任务1、循环结构?2、循环语句:实现循环结构的语句称为循环语句。
3、在C中,循环语句有以下三种:for语句while语句do…while语句1)while循环——当型循环while语句的一般格式为:while(表达式)语句while语句的执行过程为:(1)计算并判断表达式的值。
若值为0,则结束循环,退出while语句;若值为非0,则执行循环体。
(2)转步骤(1)。
执行过程流程图:二、While语句-------使用要点(当型循环)1.圆括号中的表达式可以是任意表达式,它仅用来测试表达式的结果值是零值还是非零值,用以决定循环进行的条件,称为“判终表达式”,一般是关系表达式或逻辑表达式,与条件语句一样可进行如下简化:while(x != 0) →while(x == 0) →2.当判终表达式为时,这样的while语句为无穷循环语句,如:while(1) 语句; // 无穷循环语句3. while语句的循环体通常是一个复合语句,也可以是简单语句,甚至可以是一个。
4.在循环体中应有使循环趋于的语句,以避免“死循环”。
任务二do-while循环——直到型循环学案学生自评教师评分1. 了解循环结构、循环语句2. 掌握do-while语句和语法形式、执行顺序及用法3. 掌握循环结构的嵌套使用方法【学习重点、难点】1.do-while语句【学时安排】2学时【学习过程】二、课前预习及课堂学习任务do-while语句的一般格式为do 语句while(表达式);do-while语句的执行过程为:(1)执行循环体语句。
JAVA__三天打鱼两天晒网问题
import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOException;public class y_dayu {public static void main(String[] args) throws IOException {System.out.println("打鱼");System.out.println("从2000年1月1日起");BufferedReader buff;System.out.println("请输入year的值:");buff=new BufferedReader(new InputStreamReader(System.in)); String str=buff.readLine();int year=Integer.parseInt(str);System.out.println("year="+year);System.out.println("请输入month的值:");buff=new BufferedReader(new InputStreamReader(System.in));String str1=buff.readLine();int month=Integer.parseInt(str1);System.out.println("month="+month);System.out.println("请输入day的值:");buff=new BufferedReader(new InputStreamReader(System.in));String str2=buff.readLine();int day=Integer.parseInt(str2);System.out.println("day="+day);int i,sum=0;for(i=2000;i<year;i++){if((i%4==0&&i%100!=0)||i%400==0){sum+=366;}else{sum+=365;}}//年for(i=1;i<month;i++)//注意i<month{switch (i) {case 1:case 3:case 7:case 8:case 10:case 12: {sum += 31;break;}case 4:case 6:case 9:case 11: {sum += 30;break;}case 2: {if ( (year % 4 == 0 && year % 100 != 0) || year % 400 == 0)sum += 29;else {sum += 28;}}}}//月sum += day;//日,不要放在month的循环里System.out.println("总天数day为:"+sum);if(day%5==1||day%5==2||day%5==3){System.out.println("打鱼");}else {System.out.println("晒网");}}}。
C语言渔夫打鱼晒网问题
C语言渔夫打鱼晒网问题如果一个渔夫从2011 年1 月1 日开始每三天打一次渔,两天晒一次网,编程实现当输入2011 1 月1 日以后的任意一天,输出该渔夫是在打渔还是在晒网。
实现过程:(1) 自定义函数leap(),用来判断输入的年份是否是闰年。
(2) 自定义函数number(),用来计算输入日期距2011 年1 月1 日共有多少天。
(3) main() 函数作为程序的入口函数,在main() 函数中调用上面两个函数。
程序代码如下:1.#include<stdio.h>2.int leap(int a)/*自定义函数leap()用来指定输入的年份是否为闰年*/3.{4.if(a%4==0&&a%100!=0||a%400==0)/* 闰年判定条件 */5.return1;/*是闰年返回1*/6.else7.return0;/*不是闰年返回O*/8.}9.10.int number(int year,int month,int day)/*自定义函数 number() 计算输入日期距2011年1月1日共有多少天*/11.{12.int sum =0, i, j, k;13.int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};/*数组a存放平年每月的天数*/14.int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};/*数组b存放闰年每月的天数*/15.16.if(leap(year)==1)/*判断是否为闰年*/17.for(i=0;i<month-1;i++)18. sum+=b[i];/*是闰年,累加数组b前m-1个月份的天数*/19.else20.for(i=0;i<month-1;i++)21. sum+=a[i];/*不是闰年,累加数组a前m-1个月份的天数*/22.for(j=2011;j<year;j++)23.if(leap(j)==i)24. sum+=366;/*2011年到输入的年份是闰年的加366*/25.else26. sum+=365;/*2011年到输入的年份不是闰年的加365*/27. sum+=day;/*将前面累加的结果加上日期,求出总天数*/28.return sum;/*返回计算的天数*/29.}30.31.int main()32.{33.int year,month,day,n;34.printf("请输入年月日\n");35.scanf("%d%d%d",&year,&month,&day);/*输入年月日*/36. n=number(year,month,day);/*调用函数 number()*/37.if((n%5)<4&&(n%5)>0)/*余数是1或2或3时说明在打渔,否则在晒网*/38.printf("%d:%d:%d 打鱼\n",year,month,day);39.else40.printf("%d:%d:%d 晒网\n",year,month,day);41.return0;42.}运行结果:。
三天打鱼两天晒网的C++程序设计题
printf("year:%d\n",year_1);//检查统计年数是否成功 printf("month:%d\n",month_1);//检查统计月数是否成功 printf("day:%d\n",day_1);//检查统计天数是否成功
printf("sum:%来自\n",sum);//检查统计总天数是否成功
day.day+=day_tab[lp][i]; return day.day; }
void main() { FILE *fp1,*fp2; struct date today,term; int yearday,year,day; //printf("Enter year/month/day:"); //scanf("%d%d%d",&today.year,&today.month,&today.day); 入日期*/ fp1=fopen("input.txt","rb"); fp2=fopen("output.txt","wb"); fscanf(fp1,"%d%d%d",&today.year,&today.month,&today.day); printf(" 从 文 件 input.txt 当 中 读 取 的 年 月 日 为 : %d-%d-%d\n",today.year,today.month,today.day); fprintf(fp2," 从 文 件 input.txt 当 中 读 取 的 年 月 日 为 : %d-%d-%d\n",today.year,today.month,today.day); term.month=12; term.day=31; /*设置变量的初始值:月*/ /*设置变量的初始值:日*/ /* 输
趣味C语言题
韩信点兵在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。
据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:按从1至5报数,记下最末一个士兵报的数为1;再按从1至6报数,记下最末一个士兵报的数为5;再按从1至7报数,记下最末一个士兵报的数为4;最后按从1至11报数,最末一个士兵报的数为10;你知道韩信至少有多少兵?()z谁结婚呢?魔术师的秘密在一次晚会上,一位魔术师掏出一叠扑克牌,取出其中13张黑桃,预先洗好后,把牌面朝下,对观众说:“我不看牌,只数一数就能知道每张牌是什么?”魔术师口中念一,将第一张牌翻过来看正好是A;魔术师将黑桃A放到桌上,继续数手里的余牌,第二次数1,2,将第一张牌放到这叠牌的下面,将第二张牌翻开,正好是黑桃2,也把它放在桌子上。
第三次数1,2,3,前面二张牌放到这叠牌的下面,取出第三张牌,正好是黑桃3,这样依次将13张牌翻出,准确无误。
现在的问题是,魔术师手中牌的原始顺序是怎样的?约瑟夫问题这是17世纪的法国数学家加斯帕在《数目的游戏问题》中讲的一个故事:15个教徒和15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30个人围成一圆圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环进行直到仅余15个人为止.问怎样排法,才能使每次投入大海的都是非教徒.求车速一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859.两小时后里程表上出现了第二个新的对称数.问该车的速度是多少新的对称数是多少?常胜将军现有21根火柴,两人轮流取,每人每次可以取走1至4根,不可多取,也不能不取,谁取最后一根火柴谁输.请编写一个程序进行人机对弈,要求人先取,计算机后取;计算机一方为"常胜将军".十进制转换成N进制(N=2 8 16 )定义一个方法Trans(int num, int regx) 实现将一个输入十进制数num转换成regx 进制Eg: Trans(100, 16) 表示将 100 转成 16进制数输出求100到1000之间有多少个其数字之和为5的整数.(答案:104,113,122,131,140,203,212,221,230,302,311,320,401,410,500)打鱼还是晒网scanf(“%d%d%d”,&year ,&month,&day);中国有句俗语叫"三天打鱼两天晒网".某人从1990年1月1日起开始"三天打鱼两天晒网",问这个人在以后的某一天中是"打鱼"还是"晒网".*思考题:请打印出任意年份的日历*运行结果Enter year/month/day:1991 10 25He was fishing at day.Enter year/month/day:1992 10 25He was sleeping at day.Enter year/month/day:1993 10 25He was sleeping at day.求具有abcd=(ab+cd)^2性质的四位数3025这个数具有一种独特的性质:将它平分为二段,即30和25,使之相加后求平方,即(30+25)2,恰好等于3025本身.请求出具有这样性质的全部四位数.*运行结果There are following numbers with 4 digits satisfied condition:2025 3025 9801填数字游戏已知下面的算式:ABCD× EDCBA 计算ABCDE取什么值? Sum谁在说谎张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说谎.现在问:这三人中到底谁说的是真话,谁说的是假话*运行结果Zhangsan told a lie (张三说假话)Lisi told a truch. (李四说真话)Wangwu told a lie. (王五说假话)谁是窃贼公安人员审问四名窃贼嫌疑犯.已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的.在回答公安人员的问题中:甲说:"乙没有偷,是丁偷的."乙说:"我没有偷,是丙偷的."丙说:"甲没有偷,是乙偷的."丁说:"我没有偷."请根据这四人的答话判断谁是盗窃者.*运行结果The thief is B. (乙为窃贼.)求数字求出所有可能的以下形式的算式,每个算式中有九个数位,正好用尽1到9这九个数字。
第二次
Contest - 2018全校C语言程序设计作业2题目1:有句俗话说“三天打鱼两天晒网”。
假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第n天是“打鱼”还是晒网示例结果1:103Fishing in day 103示例结果2:34Drying in day 34代码:#include<stdio.h>int main(void){int n;while(scanf("%d",&n)!=EOF){if(n%5<=3&&n%5>0){printf("Fishing in day %d\n",n);}else{printf("Dring in day %d\n",n);}}return 0;}题目2:告诉公路超速处罚:行驶的机动车,超出本车道限速的10%处200罚款;若超出50%,就要吊销驾驶证。
请输入两个整数,分别对应车速和限速,自动判断对机动车的处理。
示例结果1:65 60OK示例结果2:110 100Exceed 10% . Ticket 200示例结果3:200 120Exceed 67% . License Revoked代码:#include<stdio.h>int main(void){int a,b;double m;while(scanf("%d%d",&a,&b)!=EOF){m=(a-b)*1.0/b;if(a<b||m<0.1)printf("OK\n");else if(m<0.5)printf("Exceed %.0f%%.Ticket 200\n",m*100);elseprintf("Exceed %.0f%%.License Revoked\n",m*100);}return 0;}题目3:假设90号汽油价格为6.95元/升,93号汽油7.44元/升,97号汽油7.93元/升。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<iostream> using namespace std; int days(struct date day); struct date { int year; int month; int day; };
int days(struct date day) { static int day_tab[2][13]= {{0,31,28,31,30,31,30,31,31,30,31,30,31,}, 每月的天数*/ {0,31,29,31,30,31,30,31,31,30,31,30,31,}, }; int i,lp; lp=day.year%4==0&&day.year%100!=0||day.year%400==0; /*判定 year 为闰年还是平年,lp=0 为平年,非 0 为闰年*/ for(i=1;i<day.month;i++) 的天数*/ /*计算本年中自 1 月 1 日起 /* 平均
fprintf(fp2,"\n 该人当天在打鱼!\n\n"); } else { printf("该人当天在晒网!\n"); fprintf(fp2,"\n 该人当天在晒网!\n\n"); } }
/*
捕鱼问题 1,本次大赛主题 :中国有句俗语叫 “三天打鱼两天晒网 ”。某人从 2007 年 1 月 1 日起开始“三天打鱼两天晒网”, 问这个人在以后的某一天中 是“打鱼”还是“晒网”。 2,规则:尽量不要修改已给出部分的代码,如果确实要修改的,必须在修 改处加注释 3,答题格式(参考如下): A,编绎器及版本:VC++6.0 B,算法的简要说明:写你的 4,内容:题目已经比较清楚了,就是前三天打鱼后两天晒网 */ #include<stdio.h> int fishing(int year,int month,int day); int main(void) { int year,month,day; printf("请输入一个日期:\n"); scanf("%d%d%d",&year,&month,&day); fishing(year,month,day); return 0; } int fishing(int year,int month,int day)
{ int n=0;//代表闰年个数 int month1;//代表月数之差 int year_1;//代表年之差换算成天数差 int month_1,day_1; int sum;//代表某天之后,即从 2007/01/01 后的天数 int k;//代表是求模数,0,1,2 代表打鱼,3,4 代表晒网 /*判断是否是闰年,并计算其个数*/ int m;//计算闰年时使用的参数 int f1,f2,f3; for(m=1;m<=year;m++) {
break; case 4: printf("今天该晒网\n"); break; } return 0; }
printf("year:%d\n",year_1);//检查统计年数是否成功 printf("month:%d\n",month_1);//检查统计月数是否成功 printf("day:%d\n",day_1);//检查统计天数是否成功
printf("sum:%d\n",sum);//检查统计总天数是否成功
k=sum%5;//求模,0,1,2 代表打鱼,3,4 代表晒网 printf("%d\n",k);//检查统计求模是否成功 switch(k) { case 0: printf("今天该打鱼\n"); break; case 1: printf("今天该打鱼\n"); break; case 2: printf("今天该打鱼\n"); break; case 3: printf("今天该晒网\n");
for(yearday=0,year=1990;year<today.year;year++)
{ term.year=year; yearday+=days(term); 年共有多少天*/ } yearday+=days(today); */ day=yearday%5; if(day>0&&day<4) { printf("该人当天在打鱼!\n"); /*打印结果*/ /*求余数*/ /*加上指定年中到指定日期的天数 /*计算从 1990 年至指定年的前一
month_1=181; break; case 7: month_1=212; break; case 8: month_1=243; break; case 9: month_1=273; break; case 10: month_1=304; break; case 11: month_1=334; break; } /*计算天数差*/ day_1=day-1; /*计算总天数后*/ sum=year_1+month_1+day_1;
f1=((m%4)==0); f2=((m%100)==0); f3=((m%400)==0); if(f1&&(!f2)||f2&&f3) n++; } printf("n:%d\n",n);//检查统计闰年个数是否成功 year_1=(year-2007)*365+n-486;//500 代表 2007 前的闰年个数 /*计算月份差 */
否则 是在“晒网” 在这三步中,关键是第一步。求从 1990 年 1 月 1 日至指定日期 有多少天,要判断经历年份中是否有闰年,二月为 29 天,平年为 28 天。闰年的方法可以用伪语句描述如下: 如果 则 否则 */ //西北师范大学第五届程序设计大赛实例 6.cpp //作者:西北师范大学 -数学与信息科学学院 -09 级计算机科学与技术 一班-200971030102-陈建峰 分 时间:2011 年 05 月 09 日 10 时 50 ((年能被 4 除尽 且 不能被 100 除尽)或 能被 400 除尽) 该年是闰年; 不是闰年。
/*打鱼还是晒网 中国有句俗语叫“三天打鱼两天晒网”。某人从 1990 年 1 月 1 日 起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还 是“晒网”。 *问题分析与算法设计 根据题意可以将解题过程分为三步: 1)计算从 1990 年 1 月 1 日开始至指定日期共有多少天; 2)由于“打鱼”和“晒网”的周期为 5 天, 所以将计算出的天数用 5 去除; 3)根据余数判断他是在“打鱼”还是在“晒网”; 若 余数为 1,2,3,则他是在“打鱼”
month1=month-1; switch(month1) { case 0: month_1=0; break; case 1: month_1=31; break; case 2: month_1=59; break; case 3: month_1=90; break; case 4: month_1=120; break; case 5: month_1=151; break; case 6:
ay.day+=day_tab[lp][i]; return day.day; }
void main() { FILE *fp1,*fp2; struct date today,term; int yearday,year,day; //printf("Enter year/month/day:"); //scanf("%d%d%d",&today.year,&today.month,&today.day); 入日期*/ fp1=fopen("input.txt","rb"); fp2=fopen("output.txt","wb"); fscanf(fp1,"%d%d%d",&today.year,&today.month,&today.day); printf(" 从 文 件 input.txt 当 中 读 取 的 年 月 日 为 : %d-%d-%d\n",today.year,today.month,today.day); fprintf(fp2," 从 文 件 input.txt 当 中 读 取 的 年 月 日 为 : %d-%d-%d\n",today.year,today.month,today.day); term.month=12; term.day=31; /*设置变量的初始值:月*/ /*设置变量的初始值:日*/ /* 输