最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言算法練習(xí)之打魚(yú)還是曬網(wǎng)

 更新時(shí)間:2022年03月23日 17:10:47   作者:飛向星的客機(jī)  
這篇文章主要該大家分享C語(yǔ)言打魚(yú)還是曬網(wǎng)的練習(xí),文章主要通過(guò)三天打魚(yú)兩天曬網(wǎng)的俗語(yǔ)提出問(wèn)題,在某一天輪到打魚(yú)還是曬網(wǎng),下面來(lái)看詳細(xì)內(nèi)容吧,需要的朋友可以參考一下

1. 問(wèn)題描述

中國(guó)有句俗語(yǔ)叫 “ 三天打魚(yú)兩天曬網(wǎng) ”。某人從 1990 年 1 月 1 日起開(kāi)始 “三天打魚(yú)兩天曬網(wǎng)”,問(wèn)這個(gè)人在以后的某一天中是 “打魚(yú)” 還是 “曬網(wǎng)”。

2. 題目分析

根據(jù)題意可以將解題過(guò)程分為 3 步:

(1) 計(jì)算從 1990 年 1 月 1 日開(kāi)始至指定日期共有多少天。

(2) 由于 “打魚(yú)” 和 “曬網(wǎng)” 的周期為 5 天,所以將計(jì)算出的天數(shù)用 5 去除。

(3) 根據(jù)余數(shù)判斷他是在 “打魚(yú)” 還是在 “曬網(wǎng)”。

若余數(shù)為 1, 2, 3,則他是在 “打魚(yú)”,否則是在 “曬網(wǎng)”。

3. 算法設(shè)計(jì)

該算法為數(shù)值計(jì)算算法,要利用循環(huán)求出指定日期距 1990 年 1 月 1 日的天數(shù),并考慮到循環(huán)過(guò)程中的閏年情況,閏年二月為 29 天,平年二月為 28 天。

判斷閏年的方法如下:

如果(能被 4 整除并且不能被 100 整除)或者(能被 400 整除)則該年是閏年;否則不是閏年。

提示:C語(yǔ)言中判斷能否整除可以使用求余運(yùn)算符 %。

4. 流程框架

?? 求出指定日期距離

這里為整個(gè)算法的核心部分,經(jīng)過(guò)分析可以得到: (指定日期距離 1990 年 1 月 1 日的天數(shù))totalDay = 1990 年到指定年的前一年共有多少天 + 指定年中到指定日期的天數(shù)。

由于每月天數(shù)不同,可以設(shè)置一個(gè)月份數(shù)組int perMonth[13],存放每月的天數(shù)。

程序利用年份作為循環(huán)變量,要判斷指定年份之前的每一年是否為閏年,若為閏年則執(zhí)行totalDay=totalDay+366,否則執(zhí)行 totalDay=totalDay+365;

對(duì)于指定年份,也要判定是否為閏年,然后根據(jù)月份數(shù),將每月的天數(shù)累加到 totalDay 中。

perMonth 數(shù)組的初始化設(shè)置如下圖所示

perMonth 數(shù)組設(shè)置含有 13 個(gè)元素,perMonth[0]元素并不使用。

原因在于這種設(shè)置可以使數(shù)組下標(biāo)和月份對(duì)應(yīng),便于編程設(shè)置循環(huán)變量,數(shù)組中 2 月天數(shù)初始設(shè)置為 28,如果當(dāng)前年份為閨年,則需要執(zhí)行 perMonth[2]++ 操作。

設(shè)計(jì)一個(gè)函數(shù)int run Year(int year) 來(lái)判斷是否為閏年。

求總天數(shù)函數(shù)int countDay(Date currentDay)的實(shí)現(xiàn)。

5. 代碼實(shí)現(xiàn)

完整代碼??

#include <stdio.h>

//定義日期結(jié)構(gòu)體
typedef struct DATE
{
	int year;
	int month;
	int day;
}DATE;

//判斷閏年函數(shù)
int runYear(int year)
{
	if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
		return 1;
	else
		return 0;
}

//計(jì)算指定日期距離 1990 年 1 月 1 日的天數(shù)
int countDay(DATE currentDay)
{
	//定義一個(gè)每月天數(shù)的數(shù)組
	int perMonth[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };

	int totalDay = 0;
	int i = 0;
	int year = 0;

	//求出指定日期之前的每一年的天數(shù)累加和
	for (year = 1990; year < currentDay.year; year++)
	{
		if (runYear(year))
		{
			totalDay = totalDay + 366;
		}
		else
		{
			totalDay = totalDay + 365;
		}
	}
	
	//如果為閏年,則2月份為29天
	if (runYear(currentDay.year))
	{
		perMonth[2]++;
	}

	//將本年內(nèi)的天數(shù)累加到totalDay中
	for (i = 1; i < currentDay.month; i++)
	{
		totalDay += perMonth[i];
	}

	//將本月內(nèi)的天數(shù)累加到totalDay中
	totalDay += currentDay.day;

	return totalDay;
}

int main()
{
	DATE today; //指定日期
	int totalDay; //指定日期距離1990年1月1日的天數(shù)
	int result; //totalDay對(duì)5取余的結(jié)果

	printf("請(qǐng)輸入指定日期,包括年,月,日,例如:1999 1 31\n");
	printf("請(qǐng)輸入>:");
	scanf("%d%d%d", &today.year, &today.month, &today.day);

	totalDay = countDay(today); //求出指定日期距離1990年1月1日的天數(shù)

	result = totalDay % 5; //天數(shù)%5 判斷是打魚(yú)還是曬網(wǎng)
	if (result > 0 && result < 4)
	{
		printf("今天打魚(yú)\n");
	}
	else
	{
		printf("今天曬網(wǎng)\n");
	}
}

運(yùn)行結(jié)果??

我們?cè)趺磁袛喑鲞@個(gè)程序是正確的呢? 很簡(jiǎn)單,因?yàn)轭}目是從 1990 年 1 月 1 日開(kāi)始的,那么1,2,3日肯定是 “打魚(yú)” ;4,5日肯定是 “曬網(wǎng)”。

到此這篇關(guān)于C語(yǔ)言算法練習(xí)之打魚(yú)還是曬網(wǎng)的文章就介紹到這了,更多相關(guān)C語(yǔ)言 打魚(yú)還是曬網(wǎng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++實(shí)現(xiàn)銀行排隊(duì)系統(tǒng)

    C++實(shí)現(xiàn)銀行排隊(duì)系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)銀行排隊(duì)系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • c++自帶的查找函數(shù)詳解

    c++自帶的查找函數(shù)詳解

    這篇文章主要介紹了c++自帶的查找函數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • c++文件監(jiān)控之FileSystemWatcher

    c++文件監(jiān)控之FileSystemWatcher

    為了監(jiān)控web程序的靜態(tài)文件是否被惡意改動(dòng),所以學(xué)習(xí)了一下FileSystemWatcher 類(lèi)對(duì)文件的監(jiān)控,由于還在初級(jí)階段,這里只貼一下關(guān)于FileSystemWatcher學(xué)習(xí)的一些代碼
    2019-04-04
  • c語(yǔ)言求1+2+...+n的解決方法

    c語(yǔ)言求1+2+...+n的解決方法

    本篇文章是對(duì)在c語(yǔ)言中求1+2+...+n的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C?與?C++?中的?const?常量與數(shù)組大小的關(guān)系對(duì)比分析

    C?與?C++?中的?const?常量與數(shù)組大小的關(guān)系對(duì)比分析

    C和C++中數(shù)組大小通常要求是一個(gè)編譯時(shí)常量,C語(yǔ)言中,const變量不能直接作為數(shù)組大小,需要使用#define或enum,C++中,const變量被視為常量表達(dá)式,可以作為數(shù)組大小,本文介紹C?與?C++?中的?const?常量與數(shù)組大小的關(guān)系,感興趣的朋友一起看看吧
    2025-02-02
  • C++重載運(yùn)算符你真的了解嗎

    C++重載運(yùn)算符你真的了解嗎

    這篇文章主要為大家詳細(xì)介紹了C++重載運(yùn)算符,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • Qt寫(xiě)入Json文件的方法詳解(含源碼+注釋)

    Qt寫(xiě)入Json文件的方法詳解(含源碼+注釋)

    在Qt庫(kù)中,為JSON的相關(guān)操作提供了完整的類(lèi)支持,下面這篇文章主要給大家介紹了關(guān)于Qt寫(xiě)入Json文件(含源碼+注釋)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • QT使用QComBox和QLineEdit實(shí)現(xiàn)模糊查詢功能

    QT使用QComBox和QLineEdit實(shí)現(xiàn)模糊查詢功能

    模糊查詢是指根據(jù)用戶輸入的文本,在下拉框的選項(xiàng)中進(jìn)行模糊匹配,并動(dòng)態(tài)地顯示匹配的選項(xiàng),本文將使用QComBox和QLineEdit實(shí)現(xiàn)模糊查詢功能,需要的可以參考下
    2023-11-11
  • 基于內(nèi)核線程的創(chuàng)建、使用和退出以及延時(shí)宏的補(bǔ)充說(shuō)明介紹

    基于內(nèi)核線程的創(chuàng)建、使用和退出以及延時(shí)宏的補(bǔ)充說(shuō)明介紹

    本篇文章是對(duì)內(nèi)核線程的創(chuàng)建、使用和退出以及延時(shí)宏的補(bǔ)充說(shuō)明介紹進(jìn)行了敘述。需要的朋友參考下
    2013-05-05
  • C++中的策略模式淺析

    C++中的策略模式淺析

    策略模式屬于C++設(shè)計(jì)模式中行為模式之一,該模式定義了一系列算法,并將每個(gè)算法封裝起來(lái),使它們可以相互替換。本文將通過(guò)示例詳細(xì)講解這一模式,需要的可以參考一下
    2023-02-02

最新評(píng)論

宿松县| 喜德县| 北川| 商城县| 襄樊市| 东乌| 晋中市| 乌鲁木齐县| 太白县| 金堂县| 黔西| 吉林省| 察雅县| 仙游县| 周宁县| 泸州市| 密山市| 汉源县| 芦溪县| 巴东县| 景宁| 苏尼特右旗| 信宜市| 靖远县| 师宗县| 七台河市| 遂宁市| 桓台县| 城固县| 顺义区| 桑植县| 汽车| 无棣县| 乌苏市| 舞阳县| 石林| 磐安县| 建德市| 尤溪县| 安庆市| 炎陵县|