C语言三天打鱼两天晒网

来源:互联网 发布:雕刻机编程方法 编辑:程序博客网 时间:2024/05/22 00:13
问题描述:
      中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”,语言实现程序解决问题。
解决方案:
      流程图:



                                                                 





代码如下:


#include <stdio.h>#include <stdlib.h>int Judge(int year)//判断是否是闰年,是闰年返回1,否则返回0{    int i,j;    i = year;    if(i%4 == 0 && i%100 != 0)        j = 1;    else if(i%400 == 0)            j = 1;         else            j =0;    return j;} int main(){    int i,j,k;       //k为闰年标识符,是为1,不是为0    int Numofdays = 0;      //统计总天数    struct Date    {        int year;        int month;        int day;    }date;    int Numofmonths[2][12] = {{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};    printf("Please input your date:\n");    printf("year:");    scanf("%d",&date.year);    printf("month:");    scanf("%d",&date.month);    printf("day:");    scanf("%d",&date.day);    if(date.year < 2010)        //进行数据检错 printf("ERROR! Please input the date after 2010-01-01\n");    else    {    i = date.year - 2010;    for(i ; i>0 ; i --)     //计算year.month.day中的year中的天数    {        k = Judge(date.year - 1);   //闰年标识符        if(k == 1)            Numofdays += 366;        else            Numofdays += 365;        date.year--;    }    k = Judge(date.year);       //计算year.month.day的month中的天数    for(i = 0 ; i<(date.month-1) ; i++)        Numofdays += Numofmonths[k][i];    Numofdays += date.day;      //计算year.month.day的day中的天数    printf("据2010年1月1日共"); printf("%d",Numofdays); printf("天\n");  j=Numofdays%5;    if(j == 1 || j == 2 || j == 3)        printf("这一天他在打鱼。");    else        printf("这一天他在晒网。");    return 0;}}



运行结果截屏:


  
0 0
原创粉丝点击