三天打鱼两天晒网c语言编程(C语言三天打鱼两天晒网问题,帮我看一下哪里有错,运行结果不对,谢谢了)

:暂无数据 2026-05-01 12:40:02 0
嗨,正在屏幕前搜索三天打鱼两天晒网c语言编程的你,是否也被C语言三天打鱼两天晒网问题,帮我看一下哪里有错,运行结果不对,谢谢了的问题困扰过?今天这篇内容就是为你准备的。

本文目录

C语言三天打鱼两天晒网问题,帮我看一下哪里有错,运行结果不对,谢谢了

if(e%4==0&&e%100!=0||e%400==0)
这句话有问题 你&&运算符没学习好,它只需要判断一个为假就不会再判断, 对编译器而言

一旦e%4==0没有通过 编译器就不会再继续往下判断了,后面的都会被屏蔽 。
例如:0&&1 这句 他只需要知道有0 编译器就已经判断为假了 它就不会再往后面看了,也不需要在看后面 。

c语言 三天打鱼,两天晒网 中国有一句话:三天打鱼,两天晒网 某人从1992-2-1开始三天打鱼,两天晒网 问:输入

这个比较简单一点,仅供参考
#include《*****》
main()
{
int year,month,day,i,j=0,s,k,sum=0;
printf("Please enter year,month,day:\n");
scanf("%d,%d,%d",&year,&month,&day);
for(i=1992;i《year;i++)
{
if(i%400==0)
j+=366;
else
j+=365;}
switch(month)
{
case 1:s=0;break;
case 2:s=31;break;
case 3:s=59;break;
case 4:s=90;break;
case 5:s=120;break;
case 6:s=151;break;
case 7:s=181;break;
case 8:s=212;break;
case 9:s=243;break;
case 10:s=273;break;
case 11:s=304;break;
case 12:s=334;break;
default:printf("enter data error!");
}
if((year%400==0)&&(month》2))
{
sum=j+s+day+1;
k=sum%5;
if((k》=1)&&(k《=3))
printf("he was fishing at that day!\n");
if((k==4)||(k==0))
printf("he was sleeping at that day!\n");}
else
{
sum=j+s+day;
k=sum%5;
if((k》=1)&&(k《=3))
printf("he was fishing at that day!\n");
if((k==4)||(k==0))
printf("he was sleeping at that day!\n");}
}

关于C语言经典程序“打渔晒网”

楼主你好!!!俺仔细的看了一下程序代码,代码没有错误!!!!

俺解释一下(就针对与楼主的问题);

*****(i=1;i《*****;i++) 这个for()语句没有错误,这句确实只算了11个月的,但前面的*****=31;  给了补上!!!原因是无论那一年,1月和12月都是31天,所以楼主先把1月和12月的算在一起啦!!!这也正是楼主第二个疑问的所在!!!

如果楼主不信的话!!!可以把每一年的打印出啦,看看是不是365/366

要是少算一个月的话,那一定不是365/365;

修改如下:

#include《*****》

#include《*****》

struct date

{

 int year;

    int month;

    int day;

};

int days(struct date day)

{

 static int day_tab=

 {

  {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=*****%4==0&&*****%100!=0||*****%400==0;

      /*判定year为闰年还是平年,lp=0为平年,非0为闰年*/

    for(i=1;i《*****;i++)            /*计算本年中自1月1日起的天数*/

      *****+=day_tab;

 cout《《*****《《endl;

     return *****;

}

void main()

{

 struct date today,term;

    int yearday,year,day;

    printf("Enter year/month/day:");

    scanf("%d%d%d",&*****,&*****,&*****);  /*输入日期*/

    *****=12;               /*设置变量的初始值:月*/

    *****=31;                 /*设置变量的初始值:日*/

    //注意这里哈

    for(yearday=0,year=1990;year《*****;year++)

    {

    *****=year;

       yearday+=days(term);     /*计算从1990年至指定年的前一年共有多少天*/

    }

    yearday+=days(today);       /*加上指定年中到指定日期的天数*/

    day=yearday%5;               /*求余数*/

    if(day》0&&day《4) 

  printf("he was fishing at that day.\n");   /*打印结果*/

    else 

  printf("He was sleeping at that day.\n");

}

三天打鱼两天晒网c语言编程用结构体变量怎么写

三天打鱼两天晒网c语言编程用结构体变量解题思路如下:

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

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

3、根据余数判断是在“打鱼”还是在“晒网”;若余数为 1,2,3,则他是在“打鱼”否则是在“晒网”。

接下来的代码就可以根据自己所学的知识进行解决了。

c语言编程之三天打鱼两天晒网

#include 《*****》
#define MAX 100
#define leap(y) (y%4==0 && y%100!=0 || y%400==0)
struct d{int y,m,d;};
long days(struct d d1,struct d d2)
{
int mon= {{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; long td=0;
for(i=****;i《****;i++)
td+=leap(i)?366:365;
for(i=1;i《****;i++)
td-=mon;
td-=d1.d-1;
for(i=1;i《****;i++)
td+=mon;
td+=d2.d-1;
return td;
}
int main()
{
struct d now,start={1990,1,1};
int n,i,day;
scanf("%d",&n);
for(i=0;i《n;++i)
{
scanf("%d%d%d",&*****);
}
for(i=0;i《n;++i)
{
day=days(start,now);
if(day%5《3)
printf("He was fishing on %d %d %d\n",*****);
else
printf("He was basking on %d %d %d\n",*****);
}
return 0;
}

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

你好!

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

/*
如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网,
编程实现当输入2011年1月1日,以后的任意一天,输出该渔夫是在打渔还是晒网。
*/
#include《*****》
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={31,29,31,30,31,30,31,31,30,31,30,31};
    int b={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;
    } 
    else
    { 
    for(i=0;i《=m-1;i++)
            sum+=b;
    }
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("请输入,年 月 日:\n");
     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日 打渔\n",y,m,d);
     else
        printf("%d年%d月%d日 晒网\n",y,m,d);
}

C语言中国有句俗语叫做“三天打鱼两天晒网”求高手!!!

这是我的测试结果:可以识别不同的错误种类,包括日期格式错误,日期不存在等(空行也会被识别为错误):
Please type in date as yyyy-mm-dd for each line
the last line should be 0
warning: this program uses gets(), which is unsafe.
输入:
2013-10-01
2010-08-30
2012-06-31
2013-05-31
1998-09-12
nothing
0
输出:
2013-10-01: he was fishing at that day
2010-08-30: he was sleeping at that day.
2012-06-31: Error: date doesn’t exist
2013-05-31: he was sleeping at that day.
1998-09-12: Error: date too early
: Error: wrong format
nothing: Error: wrong format
代码:
#include 《*****》
#include 《*****》
#include 《*****》
#define NEW (node *)malloc(sizeof(node))
#define MAX_CHAR_IN_LINE 50
typedef struct node{
char* date;
node* next;
} node;
int lengOfString(char* string)
{
int length=0;
while(string!=’\0’ && length 《 MAX_CHAR_IN_LINE)
length ++;
return length;
}
bool checkFormat(char* string)
{
int i=0;
while(string)
{
if(i!=4 && i!=7)
{
if(string》’9’ )
return false;
}
else
{
if (string!=’-’)
return false;
}
i++;
}
if(i!=10)
return false;
return true;
}
bool isLeapYear(int year)
{
if ((year % 4 == 0) && !(year % 100 == 0))
return true;
else if(year % 400 ==0)
return true;
return false;
}
int daysInMonth(int year, int month)
{
int table={ 31,28,31,30,31,30,31,31,30,31,30,31};
if (isLeapYear(year))
table=29;
return table;
}
int checkDate(char* string)
{
string=’\0’;
string=’\0’;
int year=atoi(string);
int month=atoi(&string);
int day=atoi(&string);
if(month》12 || month 《 1 )
return -1;
if( day 《1 || day》 daysInMonth(year,month))
return -1;
if(year 《 2000)
return -2;
int days=0;
int ite_year;
int ite_month;
for (ite_year=2000; ite_year《=year;ite_year++)
{
for(ite_month=1;ite_month《 (ite_year==year ? month : 13);ite_month++)
{
days+= daysInMonth(ite_year,ite_month);
}
}
days+=day;
int remainder=days%5;
if(remainder==4 || remainder==0)
return 0;//sleeping
else
return 1;//fishing
}
void printList(node* head)
{
while(head!=NULL)
{
printf("%s: ",head-》date);
if(checkFormat(head-》date))
{
int value=checkDate(head-》date);
if (value==-1)
printf("Error: date doesn’t exist\n");
if (value==-2)
printf("Error: date too early \n");
if (value==0)
printf("he was sleeping at that day. \n");
if (value==1)
printf("he was fishing at that day \n");
}
else
{
printf("Error: wrong format \n");
}
head=head-》next;
}
}
int main()
{
printf("Please type in date as yyyy-mm-dd for each line\n");
printf("the last line should be 0\n");
node* head=NEW;
node* tail=head;
while(true)
{
char* input=(char*)malloc(MAX_CHAR_IN_LINE*sizeof(char));
gets(input);
if (strncmp(input,"0",MAX_CHAR_IN_LINE)==0)
break;
int str_length=lengOfString(input+1);
char* date= (char*)malloc(sizeof(char)*str_length);
strcpy(date,input);
****(input);
node* entry=NEW;
entry-》date=date;
entry-》next=NULL;
tail-》next=entry;
tail=entry;
}
printList(head-》next);
return 0;
}

c语言 三天打鱼两天晒网 在线等 急急急!

#include《*****》

int main(){

int N, i;

scanf("%d", &N);

for (i = 0; i 《 N; i += 5)

;

if (i - N 》 1)

printf("这个人第%d天在“打鱼”\n", N)。

else。

printf("这个人第%d天在“晒网”\n", N);

扩展资料:

C语言的注释符一般分为两种,一种是以“/*”开头,在中间加上注释内容,并以“*/”结尾的段落注释符。在“/*”和“*/”之间的即为注释。

另一种是以“//”开头,后面加注释内容的单行注释符。在“//”之后的即为注释。

C语言的注释符是以“/*”开头并以“*/”结尾的串。在“/*”和“*/”之间的即为注释。程序编译时,不对注释作任何处理。注释可出现在程序中的任何位置。

注释用来向用户提示或解释程序的意义。在调试程序中对暂不使用的语句也可用注释符括起来,使翻译跳过不做处理,待调试结束后再去掉注释符。

C语言“三天打鱼两天晒网”问题

根据题意可以将解题过程分为三步:

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

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

3、根据余数判断他是在“打鱼”还是在“晒网”;若  余数为1,2,3,则他是在“打鱼”;否则  是在“晒网”。

#include 《*****》
/*定义日期结构体*/
typedef struct date {
    int year;
    int month;
    int day;
} DATE;
/*判断是否为闰年,是返回1,否返回0*/
int isLeap (int year) {
    return ( (year%4==0 && year%100!=0) || (year%400==0) );
}
/*计算指定日期距离1990年1月1日的天数*/
int countDay (DATE currentDay) {
    int perMonth={0,31,28,31,30,31,30,31,31,30,31,30};  /*每月天数数组*/
    int totalDay=0,year,i;
    
    /*求出指定日期之前的每一年的天数累加和*/
    for(year=1990; year《*****; year++) {
        if(isLeap(year))  /*判断是否为闰年*/
            totalDay=totalDay+366;
        else
            totalDay=totalDay+365;
    }
    /*如果为闰年,则二月份为29天*/
    if(isLeap(*****))
        perMonth+=1;
    /*将本年内的天数累加到totalDay中*/
    for(i=0; i《*****; i++)
        totalDay+=perMonth;
    /*将本月内的天数累加到totalDay中*/
    totalDay+=*****;
    /*返回totalDay*/
    return totalDay;
}
int main(void) {
    DATE today;  /*指定日期*/
    int totalDay;  /*指定日期距离1990年1月1日的天数*/
    int result;  /*totalDay对5取余的结果*/
    int error;
    do { /*输入指定日期*/
    printf("Please input the year/month/day :\n");
  scanf("%d/%d/%d", &*****, &*****, &*****);
  printf("\n");
  error=0;
if(*****《1990) /*判断日期格式是否正确*/                                           
{printf("The year should be larger than 1990!\n");error=1;}
if(*****《1||*****》12)
{printf("The month input is error!\n");error=1;}
if(*****《0||*****》31)  
{printf("The day input is error!\n");error=1;}
printf ("======================================================\n\n");
    } while(error);
    totalDay=countDay(today);  /*求出指定日期距离1990年1月1日的天数*/
    /*天数%5,判断输出打鱼还是晒网*/
    result=totalDay%5;
    if(result》0 && result《4)
        printf("fishing!\n");
    else
        printf("sleeping!\n");
    printf("\n");
    return 0;
}

运行结果

1991/10/25,打渔

1992/10/25,晒网

日期输入错误

有关三天打鱼两天晒网c语言编程的更多实践技巧和C语言三天打鱼两天晒网问题,帮我看一下哪里有错,运行结果不对,谢谢了的高级应用,我们将在后续文章中更新,欢迎保持关注。
本文编辑:admin

更多文章:


三**值多少钱?曼基康短腿三花猫多少钱一只

三**值多少钱?曼基康短腿三花猫多少钱一只

就像学骑车需要掌握平衡一样,理解玳瑁猫贵吗的窍门,恰恰在于把握好三**值多少钱这个“平衡点”。

2026年5月2日 20:20

苹果cms原生app源码(如何制作“苹果app”)

苹果cms原生app源码(如何制作“苹果app”)

有没有觉得苹果cms原生app源码听起来很高深?别怕,今天我们就把它和如何制作“苹果app”一起,拆解成易懂的小知识点。

2026年5月2日 20:00

qq在线客服怎么联系(腾讯客服的在线客服怎么联系)

qq在线客服怎么联系(腾讯客服的在线客服怎么联系)

回顾我学习qq在线客服怎么联系的经历,腾讯客服的在线客服怎么联系可算是一个重要的转折点。正是搞懂了它,一切才变得顺畅起来。

2026年5月2日 19:40

数据结构与算法代码(C语言编写数据结构查找算法)

数据结构与算法代码(C语言编写数据结构查找算法)

“数据结构与算法代码”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看数据结构与算法代码(C语言编写数据结构查找算法)!

2026年5月2日 19:20

include形容词(included用法)

include形容词(included用法)

朋友们,对include形容词感到陌生再正常不过了。本篇内容将化身您的指南针,帮您在included用法的迷雾中找到方向。

2026年5月2日 19:00

firefox清除缓存(请教问题:火狐浏览器清空缓存的快捷键是什么)

firefox清除缓存(请教问题:火狐浏览器清空缓存的快捷键是什么)

当我们讨论firefox清除缓存时,我们真正需要关注的是什么?很多高手的答案都指向了:请教问题:火狐浏览器清空缓存的快捷键是什么。为什么?

2026年5月2日 18:40

菜单栏命令在哪(写出在菜单栏中怎样找到序列图层命令同)

菜单栏命令在哪(写出在菜单栏中怎样找到序列图层命令同)

关注本号的朋友都知道,我们一直在持续输出关于菜单栏命令在哪的干货。今天,我们就聚焦到大家反复问到的写出在菜单栏中怎样找到序列图层命令同上。

2026年5月2日 18:20

matlab解符号方程组的例子(matlab 求助 解方程组)

matlab解符号方程组的例子(matlab 求助 解方程组)

各位老铁们好,相信很多人对matlab解符号方程组的例子都不是特别的了解,因此呢,今天就来为大家分享下关于matlab解符号方程组的例子以及matlab 求助 解方程组的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年5月2日 18:00

安卓和前端的区别?自学编程学习前端还是后端呢

安卓和前端的区别?自学编程学习前端还是后端呢

我们注意到,那些在前端吧上表现突出的人,往往都对安卓和前端的区别有独到的见解。这并非巧合。

2026年5月2日 17:40

编程猫被曝一边招人一边裁员(编程猫为什么被禁)

编程猫被曝一边招人一边裁员(编程猫为什么被禁)

这篇文章给大家聊聊关于编程猫被曝一边招人一边裁员,以及编程猫为什么被禁对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年5月2日 17:20

最近更新

include形容词(included用法)
2026-05-02 19:00:02 浏览:0
热门文章

split函数 sql(求sql split函数的用法)
2026-03-26 20:40:01 浏览:1
标签列表