0
点赞
收藏
分享

微信扫一扫

C语言每日一练 —— 打鱼晒网问题

文风起武 2022-02-07 阅读 60

实例说明

如果一个渔夫从 2011 年 1 月 1 日开始每三天打一次渔,两天晒一次网,编程实现当输入 2011 年1月1日以后的任意一天, 输出该渔夫是在打渔还是在晒网。

实现代码

#include <stdio.h> 
 
int leap(int year)
    {
        if(year%4==0&&year%100!=0||year%400==0)    
            return 1;
        else 
            return 0;        
     } 
     
int number (int year,int month,int day)      //返回输入年份距离2011年1月1日共有多少天 
    {
        int i,j,k,sum=0;
        int a[]={31,28,31,30,31,30,31,31,30,31,30,31};              //year为闰年是,每个月的天数 
        int b[]={31,29,31,30,31,30,31,31,30,31,30,31};             //year为平年时,每个月的天数 
        if(leap(year))
            for(i=0;i<month-1;i++){
                sum+=b[j];                                    //累加十二个月份日期 
            }
        else 
            for(i=0;i<month-1;i++){
                sum+=a[j];                    //累加十二个月份日期 
            }
            
        for(j=2011;j<year;j++)
        {
            if(leap(j))
            sum+=366;
            else
            sum+=365;
         } 
         sum+=day;            //前面年月都累加了,这里再把输入的日给累加
        
    }
 
int main(){
    int sum,year,month,day;
    printf("请输入年月日:\n");
    scanf("%d%d%d",&year,&month,&day);
    
    sum=number(year,month,day);
    if((sum%5<4)&&(sum%5>0))
        printf("%d年%d月%d日,他在打渔",year,month,day);
    else
        printf("%d年%d月%d日,他在晒网",year,month,day);
    return 0;
}
 

实现结果


 

 

举报

相关推荐

c语言每日一练(9)

c语言每日一练(12)

c语言每日一练(13)

C语言每日一练(1)

c语言每日一练(15)

0 条评论