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

C語言算法練習之佩奇借書

 更新時間:2022年03月23日 17:13:01   作者:飛向星的客機  
這篇文章主要該大家分享C語言佩奇借書的練習,文章主要通過描述佩奇借書的問題然后確定程序框架將結(jié)果運算出來,下面來看詳細內(nèi)容吧,需要的朋友可以參考一下

1. 問題描述

佩奇有5本新書,要借給A、B、C這3位小朋友,若每人每次只能借1本,則可以有多少種不同的借法?

2. 題目分析

本題屬于數(shù)學當中常見的排列組合問題,即求從 5 個數(shù)中取 3 個不同數(shù)的排列組合的總數(shù)。 我們可以將 5 本書進行 1~5 的編號,A、B、C 3個人每次都可以從 5 本書中任選 1 本,即每人都有 5 種選擇,由于 1 本書不可能同時借給一個以上的人,因此只要這 3 個人所選書的編號不同,即為一次有效的借閱方法。

3. 算法設(shè)計

對于每個人所選書號,我們可以采用窮舉循環(huán)來實現(xiàn),即從每個人可選書號(1、2、3、4、5)的范圍內(nèi)進行窮舉,從而得到可行的結(jié)果。 對第 1 個人的選擇,我們可以用循環(huán)將其列出::for (a = 1; a <= 5; a++),同理對于第 2 個人、第 3 個人可以用同樣的方法。 由于一本書只能借給一個人,所以第 2 個人的選擇會受到第 1 個人的限制,最后一個人的選擇會受到第 2 個人的限制,即后面的選擇都是在前面選擇的前提下進行的,所以可采用循環(huán)的嵌套來解決問題。 利用循環(huán)解決問題的時候,找到循環(huán)的三要素:循環(huán)變量的初值、循環(huán)的控制條件,以及使循環(huán)趨于結(jié)束的循環(huán)變量值的改變是進行編程的關(guān)鍵。

4. 代碼實現(xiàn)

完整代碼??

int main()
{
	int a, b, c = 0; //a、b、c分別用來記錄3個人所選新書編號
	int cnt = 0; //用來統(tǒng)計借閱的方法

	printf("A、B、C 三個人所選書號分別為:↓\n");

	for (a = 1; a <= 5; a++) //控制A借書編號
	{
		for (b = 1; b <= 5; b++) //控制B借書編號
		{
			for (c = 1; c <= 5; c++) //控制C借書編號
			{
				if ((a != b) && (a != c) && (c != b)) //控制有效借閱組合
				{
					printf("A:%d號  B:%d號  C:%d號  |  ", a, b, c);
					cnt++;

					if (cnt % 4 == 0) //打印4列在屏幕上顯示
					{
						printf("\n");
					}
				}
			}
		}
	}
	printf("總共有%d種有效的借閱方法\n", cnt); //輸出有效的借閱方法總數(shù)

	return 0;
}

運行結(jié)果??

本題的輸出結(jié)果有一個條件限制,即 3 個人所選書號各不相同,所以在輸出語句前只要用一個 if 語句 if(a!=b && a!=c && c!=b)判斷即可。

5. 算法升級

對于原程序中的第三層 for 循環(huán)來說不管 a、b 的取值是否相同,循環(huán)都要重復進行 5 次。 如果A 和 B 所選書號相同,那么無論 C 選什么書號都是無效的借閱方法。因此在執(zhí)行第 3 個循環(huán)之前可先行判定A、B 兩人的編號是否相同,進而提高程序效率。

修改后的程序在進入循環(huán)體之前首先判斷a、b的取值,如果兩者取值相同,內(nèi)層循環(huán)無須重復執(zhí)行5次便可結(jié)束。

完整代碼??

到此這篇關(guān)于C語言算法練習之佩奇借書的文章就介紹到這了,更多相關(guān)C語言 佩奇借書內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言實現(xiàn)全排列算法模板的方法

    C語言實現(xiàn)全排列算法模板的方法

    這篇文章主要介紹了C語言實現(xiàn)全排列算法模板的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • C語言代碼詳細描述順序線性表

    C語言代碼詳細描述順序線性表

    這篇文章主要用代碼介紹了C語言線性表的順序線性表,對于學習數(shù)據(jù)結(jié)構(gòu)與算法的朋友很有參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • C語言實現(xiàn)在windows服務中新建進程的方法

    C語言實現(xiàn)在windows服務中新建進程的方法

    這篇文章主要介紹了C語言實現(xiàn)在windows服務中新建進程的方法,涉及C語言進程操作的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • C++ 中類的拷貝、賦值、銷毀的實例詳解

    C++ 中類的拷貝、賦值、銷毀的實例詳解

    這篇文章主要介紹了C++ 中類的拷貝、賦值、銷毀的實例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • C++?Boost?Foreach超詳細分析講解

    C++?Boost?Foreach超詳細分析講解

    Boost是為C++語言標準庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化進程的開發(fā)引擎之一,是為C++語言標準庫提供擴展的一些C++程序庫的總稱
    2022-11-11
  • 在QT5中實現(xiàn)求兩個輸入值的和并輸出(實例)

    在QT5中實現(xiàn)求兩個輸入值的和并輸出(實例)

    下面小編就為大家?guī)硪黄赒T5中實現(xiàn)求兩個輸入值的和并輸出(實例)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • C++計算ICMP頭的校驗和實例

    C++計算ICMP頭的校驗和實例

    這篇文章主要介紹了C++計算ICMP頭的校驗和的方法,代碼簡單實用,對于校驗ICMP報文來說有不錯的實用價值,需要的朋友可以參考下
    2014-10-10
  • C語言中棧的兩種實現(xiàn)方法詳解

    C語言中棧的兩種實現(xiàn)方法詳解

    棧只允許在一端進行插入或刪除操作的線性表。首先棧是一種線性表,但是限定這種線性表只能在某一端進行插入和刪除操作,這篇文章主要介紹了C語言對棧的實現(xiàn)基本操作
    2021-08-08
  • 一篇文章帶你入門C語言:數(shù)組

    一篇文章帶你入門C語言:數(shù)組

    這篇文章主要介紹了C語言中數(shù)組的一些基本知識小結(jié),其中重點是對于數(shù)組的內(nèi)存分配相關(guān)方面的知識整理,需要的朋友可以參考下
    2021-08-08
  • C語言實現(xiàn)古代時辰計時與現(xiàn)代時間換算

    C語言實現(xiàn)古代時辰計時與現(xiàn)代時間換算

    這篇文章主要為大家詳細介紹了如何利用C語言實現(xiàn)古代時辰計時與現(xiàn)代時間換算,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-03-03

最新評論

宣恩县| 六安市| 涟水县| 祥云县| 太湖县| 江口县| 镇雄县| 白银市| 芜湖市| 淮滨县| 汝南县| 韶关市| 宜宾县| 沙洋县| 东阿县| 桦甸市| 丽水市| 仙居县| 卓资县| 宝坻区| 井陉县| 嘉义市| 孝义市| 石嘴山市| 河北省| 榆社县| 扬中市| 天镇县| 开封县| 石景山区| 龙陵县| 衡南县| 左云县| 桦川县| 六盘水市| 栾川县| 盱眙县| 方正县| 遂平县| 吉安市| 翼城县|