編輯推薦
精講100個不同類型的C語言趣味編程題的求解過程
培養編程興趣,拓寬編程思維,提高編程能力,增強求職競爭力
50小時教學視頻 + 758個實例源文件 + 61個程序流程圖
精選的實例都兼顧瞭程序的趣味性和實用性,涵蓋瞭C程序設計的基礎知識和常用算法
每個實例都遵循先提齣問題,再分析問題,最後實現的寫作風格,並給齣瞭詳細的實現代碼和注釋
多數實例來自編程大賽和企業麵試題,具有很強的實用性
超值DVD光盤中提供瞭大量的C語言教學視頻與實例源文件
內容簡介
《C語言趣味編程100例》講解瞭100個各種類型的C語言編程趣味題的求解過程,旨在幫助讀者培養編程興趣,拓寬C語言編程思維,提高C語言編程能力,掌握用程序設計解決實際問題的方法與技巧。《C語言趣味編程100例》取材注重趣味性與實用性,內容涵蓋瞭C語言編程的基礎知識和常用算法,講解時給齣瞭實例的詳細代碼及注釋。《C語言趣味編程100例》附帶1張DVD光盤,收錄瞭本書實例源文件、50小時C語言教學視頻及758個C語言編程實例源文件,以方便讀者高效、直觀地學習。
《C語言趣味編程100例》共分12章。第1章介紹瞭10個趣味算法入門實例;第2章介紹瞭11個趣味數學實例;第3章介紹瞭10個趣味整數實例;第4章介紹瞭8個趣味分數實例;第5章介紹瞭7個趣味素數實例;第6章介紹瞭8個趣味邏輯推理實例;第7章介紹瞭8個趣味遊戲實例;第8章介紹瞭10個趣味數組實例;第9章介紹瞭7個趣味函數遞歸實例;第10章介紹瞭6個定理與猜想實例;第11章介紹瞭8個趣味圖形實例;第12章介紹瞭7個綜閤性較強的其他趣味實例。
《C語言趣味編程100例》適閤高校、職業技術院校及社會培訓學校的學生閱讀,也適閤C語言編程愛好者閱讀,還可作為各級程序設計選拔賽和全國青少年信息學奧林匹剋競賽的參考書。
超值DVD光盤內容 100個本書涉及的實例源文件
9.2小時本書配套教學視頻
123個C語言入門實例源文件
9.8小時C語言入門教學視頻
535個C語言經典實例源文件
31小時C語言經典實例教學視頻
作者簡介
賈蓓,講師。研究方嚮為數據庫與XML技術。在軍隊院校任教4年,講授多門計算機相關課程。近年來在國內外學術刊物及學術會議上發錶論文10餘篇,其中EI收錄7篇。喜歡研究新技術,有豐富的C語言編程和Java項目開發經驗。參與編寫瞭《Java Web整閤開發實戰——基於Struts2+Hibernate+Spring》一書。
郭強,博士,講師。研究方嚮為智能交通和復雜係統建模。精通多種編程語言,對計算機與信息技術有深刻的理解和豐富的研發經驗。在校期間參與瞭多個項目的開發工作。
劉占敏,講師。對信息技術及C語言編程有深刻的理解。有豐富的C語言教學經驗及二級C語言等級考試輔導經驗。參與過相關圖書的編寫及項目開發工作。
內頁插圖
目錄
第1章 趣味算法入門( 教學視頻:90分鍾)
1.1 百錢百雞問題
1.2 藉書方案知多少
1.3 打魚還是曬網
1.4 抓交通肇事犯
1.5 兔子産子問題
1.6 牛頓迭代法求方程根
1.7 最佳存款方案
1.8 冒泡排序
1.9 摺半查找
1.10 數製轉換
第2章 趣味數學問題( 教學視頻:59分鍾)
2.1 個人所得稅問題
2.2 存錢問題
2.3 分糖果
2.4 三色球問題
2.5 齣售金魚
2.6 求車速
2.7 愛因斯坦的數學題
2.8 猜牌術
2.9 捨罕王的失算
2.10 馬剋思手稿中的數學題
2.11 換分幣
第3章 “各種”趣味整數( 教學視頻:49分鍾)
3.1 完數
3.2 親密數
3.3 自守數
3.4 迴文數
3.5 水仙花數
3.6 阿姆斯特朗數
3.7 高次方數的尾數
3.8 黑洞數
3.9 勾股數
3.10 不重復的3位數
第4章 趣味分數( 教學視頻:47分鍾)
4.1 最大公約數
4.2 最小公倍數
4.3 歌星大奬賽
4.4 將真分數分解為埃及分數
4.5 列齣真分數序列
4.6 多項式之和
4.7 分數比較
4.8 計算分數精確值
第5章 趣味素數( 教學視頻:36分鍾)
5.1 素數
5.2 哥德巴赫猜想
5.3 要發就發
5.4 可逆素數
5.5 迴文素數
5.6 孿生素數
5.7 梅森素數
第6章 趣味邏輯推理( 教學視頻:49分鍾)
6.1 誰傢孩子跑的最慢
6.2 新郎和新娘
6.3 誰在說謊
6.4 誰是竊賊
6.5 旅客國籍
6.6 委派任務
6.7 謎語博士的難題
6.8 黑與白
第7章 趣味遊戲( 教學視頻:40分鍾)
7.1 人機猜數
7.2 搬山遊戲
7.3 搶30
7.4 黑白子交換
7.5 自動發牌
7.6 常勝將軍
7.7 24點
7.8 擲骰子
第8章 趣味數組( 教學視頻:53分鍾)
8.1 狼追兔子
8.2 選美比賽
8.3 郵票組閤
8.4 平分7筐魚
8.5 農夫過河
8.6 矩陣轉置
8.7 魔方陣
8.8 馬踏棋盤
8.9 刪除“*”號
8.10 指定位置插入字符
第9章 趣味函數遞歸( 教學視頻:46分鍾)
9.1 遞歸解決年齡問題
9.2 遞歸解決分魚問題
9.3 漢諾塔問題
9.4 猴子吃桃
9.5 楊輝三角形
9.6 卡布列剋常數
9.7 逆序輸齣數字
第10章 定理與猜想( 教學視頻:32分鍾)
10.1 四方定理
10.2 角榖猜想
10.3 ? 的近似值
10.4 尼科徹斯定理
10.5 奇數平方的有趣性質
10.6 迴文數的形成
第11章 趣味圖形( 教學視頻:18分鍾)
11.1 繪製餘弦麯綫
11.2 繪製空心圓
11.3 繪製空心菱形
11.4 畫直綫
11.5 畫圓和圓弧
11.6 畫彩色圖形
11.7 填充彩色圖形
11.8 圖形模式下顯示字符
第12章 其他趣味問題( 教學視頻:35分鍾)
12.1 雙色球
12.2 填錶格
12.3 求齣符閤要求的素數
12.4 約瑟夫環
12.5 數據加密問題
12.6 三色旗
12.7 統計學生成績
精彩書摘
第3章 “各種”趣味整數
整數通常是程序設計語言的一種基礎形態,例如Java及C編程語言的int類型。整數問題是實際應用中遇到的一類問題。整型數據從所占內存大小可分為基本整型(int)、長整型(longint)和短整型(shortint),根據數據滿足的某些性質又可將其分為“完全數”、“水仙花數”、“親密數”等。整數問題中經常用到的是對數據的拆分、組閤,初學者一定要從實例中總結方法並掌握。本章主要通過對各類整數問題的算法進行講解,以培養讀者的編程思維方式與編程技巧。本章主要內容如下:
完數;
親密數;
自守數;
迴文數;
水仙花數;
阿姆斯特朗數;
高次方數;
黑洞數;
溝股數;
不重復的3位數。
3.1完數
1.問題描述
求某一範圍內完數的個數。
如果一個數等於它的因子之和,則稱該數為“完數”(或“完全數”)。例如,6的因子為1,2,3,而6=1+2+3,因此6是“完數”。
2.問題分析
根據完數的定義,解決本題的關鍵是計算齣所選取的整數i(i的取值範圍不固定)的因子(因子就是所有可以整除這個數的數),將各因子纍加到變量s(記錄所有因子之和),若s等於i,則可確認i為完數,反之則不是完數。
3.算法設計
對於這類求某一範圍(由於本題範圍不固定,在編程過程中采用鍵盤輸入的方式)內C語言趣味編程100例
·70·
滿足條件的數時,一般采用遍曆的方式,對給定範圍內的數值一個一個地去判斷是否滿足條件,這一過程可利用循環來實現。
本題的關鍵是求齣選取數值i的因子,即從1到i-1範圍內能整除i的數,看某一個數j是不是i的因子,可利用語句if(i%j==0)進行判斷,求某一個數的所有因子,需要在1到i-1範圍內進行遍曆,同樣采用循環實現。因此,本題從整體上看可利用兩層循環來實現。外層循環控製該數的範圍2~n;內層循環j控製除數的範圍為1~i,通過i對j取餘,是否等於0,找到該數的各個因子,程序段如下:
for(i=2;i<=n;i++)
{
…
for(j=1;j
{
…
}
if(s==i)
輸齣當前i是完數
}
對於某個選定的數,將求得的各因子纍加到變量s(纍加過程中用到s的初值,所以s初值為0)之後,s的值發生改變,若直接將下一個選定數的因子加到s上,得到的值並非所求(此時s的初值不是0而是上一個選定數的因子之和)。因此每次判斷下一個選定數之前,必須將變量s的值重新置為0,編程過程中一定要注意變量s重新置0的位置,語句放的位置不正確得到的結果也不是正確結果。
注意:C語言中的整數問題,經常涉及判斷兩數是否相等或某變量(或錶達式)是否滿足某一條件的情況,對於這類問題,初學者經常會存在對賦值符號“=”與等於號“==”混淆的問題。
賦值符號“=”:基本的賦值運算符是“=”。它的優先級彆低於其他的運算符,所以對該運算符往往最後讀取。它的作用是將一個錶達式的值賦給一個(左值)變量,左值必須能夠被修改,不能是常量。如while(i=10)……此錶達式的作用是將右值“10”賦給左值i,每次判斷i的值都為10,所以錶達式的值為非0,即判定條件為真,導緻程序進入死循環。等於號“==”:是關係運算符的一種,結果隻有兩種“真”或“假”。作用是用來判斷等號“==”兩邊參與運算的值是否相等,若相等,則返迴“真”,否則返迴“假”。如while(i==10)……這裏的錶達式作用是判斷變量i的值是否等於10,若相等,則錶達式的值為真,如不相等則為假,當錶達式為真時,程序繼續執行循環體語句,否則結束循環。4.確定程序框架
程序流程圖如圖3.1所示。
5.完整程序
#include
main()
{
inti,j,s,n;/*變量i控製選定數範圍,j控製除數範圍,s記錄纍加因子之和*/
printf("請輸入所選範圍上限:");
scanf("%d",&n;);/*n的值由鍵盤輸入*/
第3章“各種”趣味整數
·71·
for(i=2;i<=n;i++)
{
s=0;/*保證每次循環時s的初值為0*/
for(j=1;j
{
if(i%j==0)/*判斷j是否為i的因子*/
s+=j;
}
if(s==i)/*判斷因子之和是否和原數相等*/
printf("It'saperfectnumber:%d.
",i);
}
}
……
前言/序言
C語言趣味編程100例(附光盤)
C語言趣味編程100例(附光盤) 下載 mobi epub pdf txt 電子書