三天打鱼、两天晒网

 1 /*
 2     问题描述:
 3     中国有句俗语叫“三天打鱼两天晒网”。
 4     某人从1990年1月1日起开始“三天打鱼两天晒网”
 5     问这个人在以后的某一天中是“打鱼"还是“晒网
 6
 7     问题分析
 8     根据题意可以将解题过程分为三步:
 9     (1)计算从1990年1月1日开始至指定日期共有多少天;
10     (2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除;
11     (3)根据余数判断他是在“打鱼”还是在“晒网”;
12     若余数为1,2, 3,则他是在“打鱼”,否则是在“晒网”
13
14     算法设计:
15     该算法为数值计算算法,要利用循环求出
16     指定日期距1990年1月1日的天数,并考虑
17     到循环过程中的闰年情况。闰年二月为29
18     天,平年二月为28天。
19 */
20
21 #include "stdio.h"
22
23 int Sun(int year,int month,int day)
24 {
25     int sum=0;
26     int months[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
27     for (int i = 1990; i < year; i++)//循环年
28     {
29         if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)//如果是闰年就 把months数组的第1位改成29
30         {
31             months[1] = 29;
32         }
33         for (int j = 0; j <= 11; j++)
34         {
35             sum += months[j];//求出年份一共多少天
36         }
37     }
38     //循环月
39     for (int k = 0; k < month-1; k++)
40     {
41         sum += months[k];//年份的天数+月数的天数+天数
42     }
43     return sum+day; //返回1990年1月1日开始至指定日期共有多少天
44
45 }
46 int main()
47 {
48     int year, month, day,days;
49     printf("请输入现在的年-月-日:");
50     scanf_s("%d-%d-%d",&year,&month,&day);//接受现在的时间
51     days = Sun(year,month,day);
52     if (days % 5 == 1 || days % 5 == 2 || days % 5 ==3)//由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除;
53     {
54         printf("打鱼\n");
55     }
56     else
57     {
58         printf("晒网\n");
59     }
60 }

作者(小权权)

原文地址:https://www.cnblogs.com/bingquan1/p/12353252.html

时间: 2024-11-12 11:01:17

三天打鱼、两天晒网的相关文章

回归经典之C语言《三天打鱼两天晒网》

//一个人从2000年1月1日开始三天打鱼两天晒网,用户输入一个日期,判断该人这天在打鱼还是晒网#include <stdio.h> void input();void sum(int y,int m,int d); int y,m,d; int main(void){ input(); sum(y,m,d); return 0;} void input(){ int ret; while(1) { ret=scanf("%d%d%d",&y,&m,&

分支-03. 三天打鱼两天晒网(15)

#include<iostream>using namespace std;int main(){    int days;    while(cin>>days){        if(days%5<=3&&days%5>=1)            cout<<"Fishing in day "<<days<<endl;        else            cout<<&q

2014华为实习上级笔试题——三天打鱼两天晒网

#include<iostream> using namespace std; int func(int year)//判断闰年的个数 { int count=0; for(int i=1990;i<year;i++) if(year%4==0&&year%100!=0||year%400==0) count++; return count; } int main() { int year,month,day; int count,sum,num; //!!!!!!!!!

03-1. 三天打鱼两天晒网(15)

中国有句俗语叫“三天打鱼两天晒网”.假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”? 输入格式: 输入在一行中给出1个不超过1000的正整数N. 输出格式: 在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”. 输入样例1: 103 输出样例1: Fishing in day 103 输入样例2: 34 输出样例2: Drying in day 34 #include "stdi

分支-03. 三天打鱼两天晒网-B3

1 /*B3-分支-03. 三天打鱼两天晒网 2 *Main.c 3 *测试通过 4 */ 5 6 #include <stdio.h> 7 #include <stdlib.h> 8 int main() 9 { 10 int day; 11 int reminder; 12 13 scanf("%i", &day); 14 if (day <= 0 || day > 1000) 15 exit(0); 16 reminder = day

分支-03. 三天打鱼两天晒网(Switch…case)

中国有句俗语叫“三天打鱼两天晒网”.假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”? 输入格式:输入在一行中给出1个不超过1000的正整数N. 输出格式:在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”. 输入样例1:103输出样例1:Fishing in day 103输入样例2:34输出样例2:Drying in day 34 import java.util.Scanne

分支-03. 三天打鱼两天晒网

分支-03. 三天打鱼两天晒网 中国有句俗语叫"三天打鱼两天晒网".假设某人从某天起,开始"三天打鱼两天晒网",问这个人在以后的第N天中是"打鱼"还是"晒网"? 输入格式: 输入在一行中给出1个不超过1000的正整数N. 输出格式: 在一行中输出此人在第N天中是"Fishing"(即"打鱼")还是"Drying"(即"晒网"),并且输出"

实验3-9 三天打鱼两天晒网 (15分)

国有句俗语叫“三天打鱼两天晒网”.假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”? 输入格式: 输入在一行中给出一个不超过1000的正整数N. 输出格式: 在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”. 输入样例1: 103 输出样例1: Fishing in day 103 输入样例2: 34 输出样例2: Drying in day 34 #include<stdio.

最近在读的书单

一.<上瘾--让用户养成使用习惯的四大产品逻辑> 感受:只看了两章,读起来很顺畅舒服,和作者的观点不谋而合. 二.<人类简史> 感受:读到一半,了解到自己的祖先只是人类的一种,原来世上有那么多物种灭绝,大部分是因为人类(特别是我们智人种),真是罪过,读起来还蛮有趣的. 三.<自私的基因> 感受:刚看序,非常有意思,会继续读下去. 相比一些著名小说,这种不枯燥的带科普性质的书更吸引我,小说开始总是进入不到情节里,非得读了几章,又没那耐心┑( ̄Д  ̄)┍ 四.<大话设