C语言编程。某人从某年1月1日开始,三天打鱼,两天晒网。。从键盘输入x年x月x日,问这个人在该年的

作者&投稿:仰才 (若有异议请与网页底部的电邮联系)
2.有句俗话叫:“三天打鱼两天晒网”,某人从2011年1月1日起开始“三天打鱼两天晒网”, C语言编程~

请验证2010以内的哥德巴赫猜想:对于任何大于4的偶数均可以分解为两个素数之和。 2.有句俗话叫:“三天打鱼两天晒网”,某人从2011年1月1日起开始“三天打鱼两天晒网”, 问此人在2011年的某月某日是在“打鱼”,还是在“晒网”。 3.编写一个字符串合并函数stradd(s,t,f),其中s和t为字符串,f为标志。当f=0时,将字符串s合并连接到字符串t的后面;当f=1时,将字符串t合并连接到字符串s的后面。

中国有句俗语叫 “三天打鱼两天晒网 ”。某人从 1990年 1月 1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。
根据题意可以将解题过程分为三步:
1)计算从 1990年 1月 1日开始至指定日期共有多少天;
2)由于“打鱼”和“晒网”的周期为 5天,所以将计算出的天数用 5去除;
3)根据余数判断他是在“打鱼”还是在“晒网”;若余数为 1,2,3,则他是在“打鱼”否则是在“晒网”在这三步中,关键是第一步。求从 1990年 1月 1日至指定日期有多少天,要判断经历年份中是否有闰年,二月为 29天,平年为 28天。闰年的方法可以用伪语句描述如下:如果 ((年能被 4除尽且不能被 100除尽)或能被 400除尽)则该年是闰年;否则不是闰年。
代码如下:
#include
#define YEAR 2010
void main()
{
int year,month,day,y,days=0;
int num[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入正确的年月日(年月日用空格键隔开):
");
scanf("%d%d%d",&year,&month,&day);
while(year<2010)
{
printf("年份输入过小,请重新输入:
");
scanf("%d,%d,%d",&year,&month,&day);
}
if(year%400==0||(year%4==0 && year%100!=0)) //当满足条件时,在二月基础加一天
num[2]+=1;
for(y=2010;y<year;y++) //判断输入年份是否为闰年
{
if(y%400==0||(y%4==0 && y%100!=0))
days+=366;
else
days+=365;
}
for(y=1;y<month;y++) //计算从2010年1月1日到输入年份总共多少天
{
days+=num[y];
}
days+=day;
printf("
从2010年1月1日起到%d年%d月%d日共经过了%d天

",year,month,day,days);
if(days%5==3||days%5==2||days%5==1) //用计算出的总天数除以5,求模
printf("%d年%d月%d日他在打鱼

",year,month,day);
else
printf("%d年%d月%d日他在晒网

",year,month,day);
return 0;
}

你好!

    

程序发上来,你看看吧,满意请采纳

/*
如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网,
编程实现当输入2011年1月1日,以后的任意一天,输出该渔夫是在打渔还是晒网。
*/
#include<stdio.h>
int leap(int a)               //自定义函数leap,判断输入的年份是否为闰年
{
    if(a%4==0&&a%100!=0||a%400==0)
        return 1;
    else
        return 0;
}
int number(int y,int m,int d)
{
    int sum=0,i,j;
    int a[12]={31,29,31,30,31,30,31,31,30,31,30,31};
    int b[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    
if(leap(y)==1)
    { 
    for(i=0;i<=m-1;i++)
            sum+=a[i];
    } 
    else
    { 
    for(i=0;i<=m-1;i++)
            sum+=b[i];
    }

for(j=2011;j<y;j++)
                if(leap(j)==1)
                sum+=366;      //2011年到输入的年份是闰年加366
                else
                sum+=365;      //2011年到输入的年份不是闰年加365
            sum+=d;
            return sum;

}
int main()
{
    int y,m,d,n;
     printf("请输入,年 月 日:
");
     scanf("%d%d%d",&y,&m,&d);
     n=number(y,m,d);

     if((n%5)<4&&(n%5)>0)      //当余数是1,2,3时说明在打渔,否则在晒网
        printf("%d年%d月%d日 打渔
",y,m,d);
     else
        printf("%d年%d月%d日 晒网
",y,m,d);
}


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <math.h>

int main ( int argc, char **argv )
{
        char iBgnYear[5];
        char iBgnMon[3];
        char iBgnDay[3];
        char iEndYear[5];
        char iEndMon[3];
        char iEndDay[3];

        char iBgnDate[9];
        char iEndDate[9];

        int  iDays;
        int  tDay;

        struct tm iBgnTm;
        struct tm iEndTm;

        memset( iBgnDate, 0x00, sizeof( iBgnDate ));
        memset( iEndDate, 0x00, sizeof( iEndDate ));

        fprintf( stdout, "假设捕鱼者从[20140101]开始3天捕鱼, 2天晒网
" );
        fprintf( stdout, "请输入您要查看捕鱼者在做甚的日期:" );
        scanf( "%s", iEndDate );

        memcpy( iBgnDate, "20140101", 8 );

        memset( iBgnYear, 0x00, sizeof( iBgnYear ));
        memset( iBgnMon,  0x00, sizeof( iBgnMon ));
        memset( iBgnDay,  0x00, sizeof( iBgnDay ));
        memset( iEndYear, 0x00, sizeof( iEndYear ));
        memset( iEndMon,  0x00, sizeof( iEndMon ));
        memset( iEndDay,  0x00, sizeof( iEndDay ));

        memcpy( iBgnYear, "2014", 4 );
        memcpy( iBgnMon,  "01",   2 );
        memcpy( iBgnDay,  "01",   2 );
        memcpy( iEndYear, &iEndDate[0], 4 );
        memcpy( iEndMon,  &iEndDate[4], 2 );
        memcpy( iEndDay,  &iEndDate[6], 2 );

        memset( &iBgnTm, 0x00, sizeof( iBgnTm ));
        memset( &iEndTm, 0x00, sizeof( iEndTm ));

        iBgnTm.tm_year = atoi( iBgnYear ) - 1900;
        iBgnTm.tm_mon  = atoi( iBgnMon ) - 1;
        iBgnTm.tm_mday = atoi( iBgnDay );
        iEndTm.tm_year = atoi( iEndYear ) - 1900;
        iEndTm.tm_mon  = atoi( iEndMon ) - 1;
        iEndTm.tm_mday = atoi( iEndDay );

        iDays = (int)((mktime( &iEndTm ) - mktime( &iBgnTm )) / (24 * 60 * 60)) + 1;
        tDay  = iDays % 5;

        if ( iDays <= 5 )
        {
                if ( iDays <= 3 )  fprintf( stdout, "捕鱼者在[%s]这天正在捕鱼
", iEndDate );
                else  fprintf( stdout, "捕鱼者在[%s]这天正在晒网
", iEndDate );
        }
        else
        {
                if ( tDay <= 3 )  fprintf( stdout, "捕鱼者在[%s]这天正在捕鱼
", iEndDate );
                else  fprintf( stdout, "捕鱼者在[%s]这天正在晒网
", iEndDate );
        }

        return 0;
}

代码及测试结果如上,纯手打!



include<stdio.h>

int ruinian(int nian)
{
if((nian%4==0)&&(nian%400)!=0) { return 1; }
else
{ if(nian%400==0) return 1;
else return 0; }
}
main()
{
int nian ,yue ,ri,i;
int cnm=0,cnd;
printf("年月日!");
scanf("%d,%d,%d",&nian,&yue,&ri );
cnd=ruinian();
if(cnd )
{
for(i=1;i<nian+1;i++)
{
switch(i)
{
case 1: cnm+=31;break;
case 3: cnm+=31;break;
case 5: cnm+=31;break;
case 7: cnm+=31;break;
case 8: cnm+=31;break;
case 10: cnm+=31;break;
case 12: cnm+=31;break;
case 2:cnm+=29;break;
default: cnm+=30;
}
}
cnm+=ri;
else
{
switch(i)
{
case 1: cnm+=31;break;
case 3: cnm+=31;break;
case 5: cnm+=31;break;
case 7: cnm+=31;break;
case 8: cnm+=31;break;
case 10: cnm+=31;break;
case 12: cnm+=31;break;
case 2:cnm+=28;break;
default: cnm+=30;
}
cnm+=ri;
}
if((cnm%5)<3)
printf("打渔\n");
else
printf("晒网\n");
}

first:某年1月1日
second:从键盘输入x年x月x日
int a = difftime(second,first);
int b = a%(5*86400);
if(b>(3*86400))
晒网
else
打鱼
没学过。没用过C语言。献丑了。




逻辑编程:上古人工智能语言Prolog
以Prolog为例,这是一种上古的语言,以其简洁的规则和事实定义来驱动连环推理。例如,当你说 philosopher(socrates) 是一个事实,而规则 mortal(X) :- philosopher(X) 描述了凡人(mortal)与哲学家之间的逻辑关系,你可以通过它来查询某人是否为凡人。逻辑编程的应用领域广泛,从专家系统构建知识库,到...

c语言编程题
include <stdio.h> int main(){ int num1 = 0;int num2 = 0;int num = 0;printf("输入身高(cm):");scanf("%d",&num1);printf("输入体重(kg):");scanf("%d",&num2);num = num1-num2-110;if (num > 5){ printf("过胖.\\n");} else if (num < 5){ printf("过瘦...

某人从1990年1月1日起开始“工作两天休息一天”,问这个人在以后的某...
先求出输入的这个“某一天”与1990年1月1日之间的间隔天数,然后用这天数对3取余。结果为2,则这一天休息,其他(0,1)就是工作。

c语言编个键盘输入某人身高(cm)和性别,判别其体重(kg)状况,并输出相应...
include <stdio.h>#include <stdlib.h>int main(){ int sg,xb,tz,btz; printf("请输入性别:1--男性,0--女性\\n"); scanf("%d",&xb); printf("请输入身高,厘米\\n"); scanf("%d",&sg); printf("请输入体重,公斤\\n"); scanf("%d",&tz); if (xb==...

[编程]关于汇编语言的负数的表示以及运算
可以用较大的数字,代替负数参加运算。假如,某人,只是认识100个数,还不会算减法。那么,计算 38 - 1,可以用 38 + 99 来代替,结果同样是 37。于是,99,可以代替 -1;同理,98,可以代替 -2;……这就是补码,100称为模。

c语言程序设计:分酒问题某人有12品脱的酒一瓶,想从中倒出6品脱...
给,详细的算法分析,以及源代码和注释:问题分析与算法设计 将12品脱酒 8品脱和5品脱的空瓶平分,可以抽象为解不定方程:8x-5y=6 其意义是:从12品脱的瓶中向8品脱的瓶中倒x次,并且将5品脱瓶中的酒向12品脱的瓶中倒y次,最后在12品脱的瓶 中剩余6品脱的酒。用a,b,c代表12品脱、8品脱和5...

如何通过语言或者是做什么事情让某人的决定或者想法让他自己认为是他...
要因人而异的 看你像对付什么样的人了 没主见的 你就把两面的道理都给他阐述一遍 把你想给他灌输的思想用简明清晰的语言外加一点他自己做过的是作为例子 另一方的道理浅显带过 最后加上一句 反正你好好想想吧 注意互动很重要 什么事儿都挑刺儿的 你可以先跟她说一下你想让他做决定的方面 然后...

语言英语怎么说?
这组词都有“文字,词,语言”的意思,其区别是:lexicon 指某种语言、某人或某一知识领域的全部词汇。term 指有特定意义的词,词语或术语。vocabulary 集合名词,指词汇、语汇或词汇量。word 普通用词,指语言的最小单位的单词、字,也可指话、整句话或一段话。language 普通用词,指国家、民族或种族...

为什么会有女孩喜欢程序员
听他用极大热情和最生动易懂的语言讲程序是什么,各种语言是什么,算法是什么,etc. 家有程序猿第二年...(从没听见过早安 3.从来不嘲笑我程序编的不好,每次都很耐心的说我教你编程序吧,然后我都说滚开我...视频的话大多会请教他编程技术。我觉得技术很牛的程序员很有魅力呀。 可以帮我解决各种bug,写代码的...

某人锻炼走了107分钟,编程计算并输出共走了几小时几分钟?
107分钟共是1小时47分钟,因为1小时=60分钟,107÷60=1余47,所以107分钟共是1小时47分钟。

黄骅市18217553482: c语言 某人从1990年1月1日起开始“三天打鱼两天嗮网”,问某一年某一天,该人是在打鱼还是在嗮网. -
哈砖巴利: 楼上的太复杂了,如下即可(C语言):#include #include int main(int argc, char* argv[]) { //t1为1990年1月1日 struct tm t1 = {0,0,0,1,0,90,0,0,0},t2 = {0}; printf("Please input year month day:"); scanf("%d %d %d",&t2.tm_year,&t2.tm_mon,&t2....

黄骅市18217553482: 工作两天休息一天 用C语言编程 -
哈砖巴利: 这个题目只需要两个关键的转弯:1.把日期给转换成这一年中的第多少天.比如2月1日是这一年的第32天2.拿这个转化出来的日期除以3,用%号,如果余数是1和2,则他是在工作,如果整除,余数是0,他在休息 具体代码你还是自己写吧,可以用SWITCH语句

黄骅市18217553482: c语言解答,三天打鱼两天晒网 -
哈砖巴利: #include "stdio.h"#define YEAR 2000#define DAYS 365int TotalDays(int year,int month,int day);int a[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};int main(){ int to...

黄骅市18217553482: c语言某人从1990年一月一日起,每工作两天休息一天问某人在今后的任一天是休息还是
哈砖巴利:是休息

黄骅市18217553482: 大一C语言编程 -
哈砖巴利: 这个问题问过很多次了,这是以前写的,一个完整的c程序如下,win-tc和Dev-c++下运行通过.建议使用Dev-c++,因为它完全支持中文,不会显示乱码.#include<stdio.h> struct date{ int year; int month; int day; }; int days(struct date day); void ...

黄骅市18217553482: 某人从1990年1月1日起开始“工作两天休息一天”,问这个人在以后的某一天是在“工作”还是“休息”.
哈砖巴利: 算某一天到1990年1月1日共有多少天(含需要计算的那天和1990年1月1日).然后整除3取余.如果余数是0则休息.否则工作

黄骅市18217553482: c语言结构体问题求解 -
哈砖巴利: 能用 S->Total的话,表示 S 是一个结构的指针.用 -> 访问结构指针中的 Total 变量. (S->Total)-1就是 S 结构中 Total 值减1.满意请采纳.

黄骅市18217553482: C语言编程 编程序实现如下功能:输入任意一个年份和月份,求出从公元1年1月1日到这个月的1日总共有 -
哈砖巴利: #include<stdio.h> int Month[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31}; int print_month[7][8]; bool leap_year(int year) {return year%4==0&&year%100!=0||year%400==0; } int get_days(int year,int month,int day) {//返回从公元1年1月1日到该日期...

黄骅市18217553482: C语言问题,谢谢 -
哈砖巴利: #include int dayofyear(int,int,int); int main(void) { int year,month,day,flag=1; printf("输入年月日:"); while(flag) { scanf("%d%d%d",&year,&month,&day); if(year12||day31) { flag=1; printf("Invalid input:"); } else flag=0; } if(dayofyear(year,...

黄骅市18217553482: C语言编程,哪位会麻烦告诉下QQ谢谢
哈砖巴利:#include <stdio.h> int main(void) { int year, month, day; int i, sum = 0; printf("plz input the year, month and day \n"); scanf("%d%d%d", &year, &month, &day); for (i = 1990; i < year; i++) { if (0 == i % 4) sum += 366; else sum += 365 ; } for (i = 1; ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网