C語言程序開發(fā)范例寶典_第1頁
C語言程序開發(fā)范例寶典_第2頁
C語言程序開發(fā)范例寶典_第3頁
C語言程序開發(fā)范例寶典_第4頁
C語言程序開發(fā)范例寶典_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C/C++語言程序開發(fā)參考手冊注:因內(nèi)容過長上傳受限制,本文檔只顯示部分內(nèi)容,完整版文檔請下載此文檔后留言謝謝。目錄\h第1章基礎(chǔ)知識\h1.1進(jìn)制轉(zhuǎn)換\h實(shí)例001十進(jìn)制轉(zhuǎn)換為十六進(jìn)制\h實(shí)例002十進(jìn)制轉(zhuǎn)換為二進(jìn)制\h實(shí)例003n進(jìn)制轉(zhuǎn)換為十進(jìn)制\h實(shí)例004以IP地址形式輸出\h1.2條件判斷\h實(shí)例005a\h2\h+b\h2\h\h實(shí)例006判斷閏年\h實(shí)例007階梯問題\h實(shí)例008評定成績\h1.3多重循環(huán)打印圖形\h實(shí)例009用#打印三角形\h實(shí)例010用*打印圖形\h實(shí)例011繪制余弦曲線\h實(shí)例012打印乘法口訣表\h實(shí)例013打印楊輝三角\h1.4循環(huán)的數(shù)學(xué)應(yīng)用\h實(shí)例014序列求和\h實(shí)例015簡單的級數(shù)運(yùn)算\h實(shí)例016用while語句求n!\h實(shí)例017特殊等式\h實(shí)例018求一個(gè)正整數(shù)的所有因子\h實(shí)例019一元錢兌換方案\h實(shí)例020對調(diào)數(shù)問題\h實(shí)例021求解平方和\h1.5數(shù)組\h實(shí)例022逆序存放數(shù)據(jù)\h實(shí)例023相鄰元素之和\h實(shí)例024選票統(tǒng)計(jì)\h實(shí)例025模擬比賽打分\h實(shí)例026對調(diào)最大與最小數(shù)位置\h實(shí)例027使用數(shù)組統(tǒng)計(jì)學(xué)生成績\h實(shí)例028設(shè)計(jì)魔方陣\h1.6字符和字符串操作\h實(shí)例029字符串倒置\h實(shí)例030字符串替換\h實(shí)例031回文字符串\h實(shí)例032不用strcat連接兩個(gè)字符串\h實(shí)例033刪除字符串中連續(xù)字符\h實(shí)例034字符升序排列\(zhòng)h實(shí)例035在指定的位置后插入字符串\h1.7函數(shù)\h實(shí)例036遞歸解決年齡問題\h實(shí)例037求學(xué)生的平均身高\(yùn)h實(shí)例038分?jǐn)?shù)計(jì)算器程序\h1.8趣味計(jì)算\h實(shí)例039加油站加油\h實(shí)例040小球下落\h實(shí)例041燈塔數(shù)量\h實(shí)例042買蘋果\h實(shí)例043猴子吃桃\h實(shí)例044老師分糖果\h實(shí)例045新同學(xué)的年齡\h實(shí)例046百錢百雞\h實(shí)例047彩球\h實(shí)例048求總數(shù)\h1.9宏定義與位運(yùn)算\h實(shí)例049用宏定義實(shí)現(xiàn)值互換\h實(shí)例050循環(huán)移位\h第2章指針\h2.1指針變量\h實(shí)例051使用指針實(shí)現(xiàn)數(shù)據(jù)交換\h實(shí)例052使用指針實(shí)現(xiàn)整數(shù)排序\h實(shí)例053指向結(jié)構(gòu)體變量的指針\h2.2指針與數(shù)組\h實(shí)例054使用指針輸出數(shù)組元素\h實(shí)例055用指針實(shí)現(xiàn)逆序存放數(shù)組元素值\h實(shí)例056輸出二維數(shù)組有關(guān)值\h實(shí)例057輸出二維數(shù)組任一行任一列值\h實(shí)例058用指針查找數(shù)列中最大值、最小值\h實(shí)例059用指針數(shù)組構(gòu)造字符串?dāng)?shù)組\h實(shí)例060將若干字符串按照字母順序輸出\h2.3指針與函數(shù)\h實(shí)例061用指向函數(shù)的指針比較大小\h實(shí)例062使用返回指針的函數(shù)查找最大值\h實(shí)例063使用指針函數(shù)求學(xué)生成績\h實(shí)例064尋找指定元素的指針\h實(shí)例065尋找相同元素的指針\h2.4字符串與指針\h實(shí)例066使用指針實(shí)現(xiàn)字符串復(fù)制\h實(shí)例067字符串的連接\h實(shí)例068字符串插入\h實(shí)例069字符串的匹配\h2.5指向指針的指針\h實(shí)例070使用指針的指針輸出字符串\h實(shí)例071實(shí)現(xiàn)輸入月份號輸出該月份英文名\h實(shí)例072使用指向指針的指針對字符串排序\h第3章數(shù)據(jù)結(jié)構(gòu)\h3.1結(jié)構(gòu)體\h實(shí)例073找最高分\h實(shí)例074平均成績\h實(shí)例075比較計(jì)數(shù)\h實(shí)例076信息查詢\h實(shí)例077計(jì)算開機(jī)時(shí)間\h3.2鏈表\h實(shí)例078創(chuàng)建單向鏈表\h實(shí)例079創(chuàng)建雙向鏈表\h實(shí)例080創(chuàng)建循環(huán)鏈表\h實(shí)例081雙鏈表逆置\h實(shí)例082雙鏈表逆序輸出\h實(shí)例083約瑟夫環(huán)\h實(shí)例084創(chuàng)建順序表并插入元素\h實(shí)例085向鏈表中插入節(jié)點(diǎn)\h實(shí)例086從鏈表中刪除節(jié)點(diǎn)\h實(shí)例087合并兩個(gè)鏈表\h實(shí)例088單鏈表就地逆置\h實(shí)例089頭插入法建立單鏈表\h3.3棧和隊(duì)列\(zhòng)h實(shí)例090應(yīng)用棧實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換\h實(shí)例091用棧設(shè)置密碼\h實(shí)例092棧實(shí)現(xiàn)行編輯程序\h實(shí)例093括號匹配檢測\h實(shí)例094用棧及遞歸計(jì)算多項(xiàng)式\h實(shí)例095鏈隊(duì)列\(zhòng)h實(shí)例096循環(huán)緩沖區(qū)問題\h3.4串與廣義表\h實(shí)例097串的模式匹配\h實(shí)例098簡單的文本編輯器\h實(shí)例099廣義表的存儲\h實(shí)例100廣義表的復(fù)制\h3.5二叉樹\h實(shí)例101二叉樹的遞歸創(chuàng)建\h實(shí)例102二叉樹的遍歷\h實(shí)例103線索二叉樹的創(chuàng)建\h實(shí)例104二叉排序樹\h實(shí)例105哈夫曼編碼\h3.6圖及圖的應(yīng)用\h實(shí)例106圖的鄰接表存儲\h實(shí)例107圖的深度優(yōu)先搜索\h實(shí)例108圖的廣度優(yōu)先搜索\h實(shí)例109Prim算法求最小生成樹\h實(shí)例110迪杰斯特拉算法\h第4章算法\h4.1簡單問題算法\h實(shí)例111任意次方后的最后三位\h實(shí)例112計(jì)算π的近似值\h實(shí)例113小于500的所有勾股數(shù)\h實(shí)例114能否組成三角形\h實(shí)例115偶數(shù)拆分\h實(shí)例116乘積大于和的數(shù)\h實(shí)例117求各位上和為5的數(shù)\h實(shí)例118計(jì)算某日是該年第幾天\h4.2排序算法\h實(shí)例119直接插入排序\h實(shí)例120希爾排序\h實(shí)例121起泡排序\h實(shí)例122快速排序\h實(shí)例123選擇排序\h實(shí)例124歸并排序\h4.3查找算法\h實(shí)例125順序查找\h實(shí)例126二分查找\h實(shí)例127分塊查找\h實(shí)例128哈希查找\h4.4定理與猜想\h實(shí)例129斐波那契數(shù)列\(zhòng)h實(shí)例130角谷猜想\h實(shí)例131哥德巴赫猜想\h實(shí)例132四方定理\h實(shí)例133尼科徹斯定理\h4.5邏輯推理與判斷\h實(shí)例134婚禮上的謊言\h第5章數(shù)學(xué)應(yīng)用\h5.1素?cái)?shù)問題\h實(shí)例135求100~200的素?cái)?shù)\h實(shí)例136可逆素?cái)?shù)\h實(shí)例137回文素?cái)?shù)\h5.2整數(shù)趣題\h實(shí)例138阿姆斯特朗數(shù)\h實(shí)例139特殊的完全平方數(shù)\h實(shí)例140求1000以內(nèi)的完全數(shù)\h實(shí)例141三重回文數(shù)\h實(shí)例142親密數(shù)\h實(shí)例143自守?cái)?shù)\h實(shí)例144滿足abcd=(ab+cd)\h2\h的數(shù)\h實(shí)例145神奇的數(shù)字6174\h實(shí)例146一數(shù)三平方\h5.3數(shù)學(xué)問題求解\h實(shí)例147求等差數(shù)列\(zhòng)h實(shí)例148求整數(shù)的絕對值\h實(shí)例149正弦、余弦、正切值\h實(shí)例150自然對數(shù)的底e的計(jì)算\h實(shí)例151最大公約及最小公倍數(shù)\h實(shí)例152求解二元一次不定方程\h實(shí)例153二分法求解方程\h實(shí)例154牛頓迭代法解方程的根\h5.4矩陣\h實(shí)例155打印特殊方陣\h實(shí)例156求3×3矩陣對角元素之和\h實(shí)例157矩陣的加法運(yùn)算\h實(shí)例158矩陣的乘法運(yùn)算\h實(shí)例159巧排螺旋方陣\h5.5生活中的數(shù)學(xué)\h實(shí)例160求車運(yùn)行速度\h實(shí)例161賣西瓜\h實(shí)例162打漁曬網(wǎng)\h實(shí)例163水池注水\h實(shí)例164捕魚和分魚\h實(shí)例165遞歸解分魚\h實(shí)例166巧分蘋果\h第6章文件操作\h6.1文件讀寫操作\h實(shí)例167讀取磁盤文件\h實(shí)例168將數(shù)據(jù)寫入磁盤文件\h實(shí)例169格式化讀寫文件\h實(shí)例170成塊讀寫操作\h實(shí)例171隨機(jī)讀寫文件\h實(shí)例172以行為單位讀寫文件\h6.2文件內(nèi)容操作\h實(shí)例173復(fù)制文件內(nèi)容到另一文件\h實(shí)例174錯誤處理\h實(shí)例175合并兩個(gè)文件信息\h實(shí)例176統(tǒng)計(jì)文件內(nèi)容\h6.3文件的創(chuàng)建、查找及刪除\h實(shí)例177創(chuàng)建文件\h實(shí)例178創(chuàng)建臨時(shí)文件\h實(shí)例179查找文件\h實(shí)例180重命名文件\h實(shí)例181刪除文件\h實(shí)例182刪除文件中的記錄\h6.4文件相關(guān)操作\h實(shí)例183關(guān)閉打開的所有文件\h實(shí)例184同時(shí)顯示兩個(gè)文件的內(nèi)容\h實(shí)例185顯示目錄內(nèi)同類型文件\h實(shí)例186文件分割\h實(shí)例187文件加密\h第7章庫函數(shù)調(diào)用\h7.1時(shí)間轉(zhuǎn)換和操作函數(shù)\h實(shí)例188固定格式輸出當(dāng)前時(shí)間\h實(shí)例189當(dāng)前時(shí)間轉(zhuǎn)換\h實(shí)例190顯示程序運(yùn)行時(shí)間\h實(shí)例191獲取DOS系統(tǒng)時(shí)間\h實(shí)例192設(shè)置DOS系統(tǒng)日期\h實(shí)例193設(shè)置DOS系統(tǒng)時(shí)間\h實(shí)例194讀取并設(shè)置bios的時(shí)鐘\h7.2數(shù)學(xué)函數(shù)\h實(shí)例195求相對的最小整數(shù)\h實(shí)例196求直角三角形斜邊\h實(shí)例197小數(shù)分離\h實(shí)例198求任意數(shù)n次冪\h7.3字符串、字符函數(shù)\h實(shí)例199函數(shù)實(shí)現(xiàn)字符匹配\h實(shí)例200任意大寫字母轉(zhuǎn)小寫\h實(shí)例201字符串復(fù)制到指定空間\h實(shí)例202查找位置信息\h7.4其他函數(shù)\h實(shí)例203復(fù)制當(dāng)前目錄\h實(shí)例204產(chǎn)生惟一文件\h實(shí)例205不同亮度顯示\h實(shí)例206字母檢測\h實(shí)例207建立目錄\h實(shí)例208刪除目錄\h實(shí)例209數(shù)字檢測\h實(shí)例210快速分類\h實(shí)例211訪問系統(tǒng)temp中的文件\h實(shí)例212設(shè)置組合鍵\h第8章圖形圖像\h8.1基本圖形\h實(shí)例213繪制直線\h實(shí)例214繪制表格\h實(shí)例215繪制矩形\h實(shí)例216繪制橢圓\h實(shí)例217繪制圓弧線\h實(shí)例218繪制扇區(qū)\h實(shí)例219繪制空心圓\h實(shí)例220繪制正弦曲線\h實(shí)例221繪制彩帶\h8.2色彩填充及使用\h實(shí)例222黃色網(wǎng)格填充的橢圓\h實(shí)例223紅色間隔點(diǎn)填充多邊形\h實(shí)例224繪制五角星\h實(shí)例225顏色變換\h實(shí)例226彩色扇形\h實(shí)例227輸出不同字體\h8.3屏幕操作\h實(shí)例228相同圖案的輸出\h實(shí)例229設(shè)置文本及背景顏色\h實(shí)例230簡單的鍵盤畫圖程序\h實(shí)例231鼠標(biāo)繪圖\h實(shí)例232藝術(shù)清屏\h8.4圖形動畫\h實(shí)例233圖形時(shí)鐘\h實(shí)例234火箭發(fā)射\h實(shí)例235運(yùn)動的問候語\h實(shí)例236正方形下落\h實(shí)例237跳動的小球\h實(shí)例238旋轉(zhuǎn)的五角星\h實(shí)例239變化的同心圓\h實(shí)例240小球碰撞\h8.5圖形綜合實(shí)例\h實(shí)例241圓形精美圖案\h實(shí)例242直線精美圖案\h實(shí)例243心形圖案\h實(shí)例244鉆石圖案\h實(shí)例245雪花\h實(shí)例246直線、正方形綜合\h第9章系統(tǒng)相關(guān)\h9.1時(shí)間和日期\h實(shí)例247獲取當(dāng)前日期與時(shí)間\h實(shí)例248獲取當(dāng)?shù)厝掌谂c時(shí)間\h實(shí)例249格林尼治平時(shí)\h實(shí)例250設(shè)置系統(tǒng)日期\h9.2BIOS操作\h實(shí)例251獲取BIOS常規(guī)內(nèi)存容量\h實(shí)例252讀/寫B(tài)IOS計(jì)時(shí)器\h實(shí)例253獲取CMOS密碼\h9.3硬件、軟件中斷\h實(shí)例254獲取Ctrl+Break鍵消息\h實(shí)例255鼠標(biāo)中斷\h實(shí)例256設(shè)置文本顯示模式\h9.4磁盤相關(guān)\h實(shí)例257獲取當(dāng)前磁盤空間信息\h實(shí)例258備份/恢復(fù)硬盤分區(qū)表\h實(shí)例259硬盤邏輯鎖\h9.5信息獲取\h實(shí)例260顯卡類型測試\h實(shí)例261獲取系統(tǒng)配置信息\h實(shí)例262獲取環(huán)境變量\h實(shí)例263獲取寄存器信息\h9.6其他\h實(shí)例264恢復(fù)內(nèi)存文本\h實(shí)例265繪制立體窗口\h實(shí)例266控制揚(yáng)聲器聲音\h實(shí)例267獲取CapsLock鍵狀態(tài)\h實(shí)例268刪除多級目錄\h第10章加解密與安全性\h10.1程序保護(hù)\h實(shí)例269自毀程序\h實(shí)例270明碼序列號保護(hù)\h實(shí)例271非明碼序列號保護(hù)\h10.2加密解密\h實(shí)例272MD5加密\h實(shí)例273RSA加密\h實(shí)例274DES加密\h實(shí)例275RC4加密\h實(shí)例276SHA1加密\h實(shí)例277愷撒加密\h第11章制作萬年歷模塊\h萬年歷概述\h實(shí)例278傳參模塊\h實(shí)例279計(jì)算星期差模塊\h實(shí)例280計(jì)算星期幾模塊\h實(shí)例281顯示月份模塊\h第12章制作文秘辦公模塊\h文秘辦公模塊概述\h實(shí)例282菜單選擇模塊\h實(shí)例283分割文件模塊\h實(shí)例284合并文件模塊\h實(shí)例285計(jì)算文件大小模塊\h第13章制作電話本模塊\h電話本概述\h實(shí)例286圖形模塊\h實(shí)例287電話本登錄模塊\h實(shí)例288關(guān)鍵算法模塊\h實(shí)例289熱鍵實(shí)現(xiàn)模塊\h實(shí)例290顯示電話本模塊\h第14章制作小熊時(shí)鐘模塊\h小熊時(shí)鐘概述\h實(shí)例291繪制圖形界面模塊\h實(shí)例292判斷按鍵模塊\h實(shí)例293顯示時(shí)間模塊\h第15章制作打字游戲\h打字游戲概述\h實(shí)例294主函數(shù)\h實(shí)例295游戲界面設(shè)置\h第16章制作彈力球游戲\h彈力球游戲概述\h實(shí)例296游戲主菜單模塊\h實(shí)例297判斷游戲選擇模塊\h實(shí)例298游戲畫墻模塊\h實(shí)例299定義鼠標(biāo)信息模塊\h實(shí)例300游戲?qū)崿F(xiàn)模塊\h實(shí)例301顯示游戲規(guī)則模塊\h第17章制作快快吃豆游戲\h游戲概述\h實(shí)例302判斷是否進(jìn)入游戲模塊\h實(shí)例303繪制游戲初始界面模塊\h實(shí)例304游戲?qū)崿F(xiàn)模塊\h實(shí)例305去除痕跡模塊\h實(shí)例306游戲輸贏模塊\h第18章制作貪吃蛇游戲\h貪吃蛇游戲概述\h實(shí)例307速度選擇界面\h實(shí)例308畫墻函數(shù)的設(shè)計(jì)\h實(shí)例309游戲運(yùn)行函數(shù)的設(shè)計(jì)\h實(shí)例310游戲結(jié)束界面的設(shè)計(jì)\h第19章制作迷宮游戲\h迷宮游戲概述\h實(shí)例311迷宮行列輸入的設(shè)計(jì)\h實(shí)例312迷宮輸出行列的設(shè)計(jì)\h實(shí)例313迷宮路徑輸出函數(shù)的設(shè)計(jì)\h第20章制作俄羅斯方塊游戲\h俄羅斯方塊概述\h實(shí)例314游戲背景界面的設(shè)計(jì)\h實(shí)例315組合方塊的設(shè)計(jì)\h實(shí)例316游戲控制模塊的設(shè)計(jì)\h實(shí)例317游戲結(jié)束界面的設(shè)計(jì)\h第21章制作推箱子游戲\h推箱子概述\h實(shí)例318游戲界面的設(shè)計(jì)\h實(shí)例319游戲控制模塊的設(shè)計(jì)\h實(shí)例320游戲說明模塊的設(shè)計(jì)\h第22章制作猜數(shù)字游戲\h猜數(shù)字游戲概述\h實(shí)例321編寫程序主函數(shù)\h實(shí)例322游戲界面設(shè)置\h第23章24點(diǎn)游戲\h24點(diǎn)游戲概述\h實(shí)例323主函數(shù)\h實(shí)例324游戲界面設(shè)置\h第24章制作五子棋游戲\h五子棋游戲概述\h實(shí)例325游戲開始\h實(shí)例326繪制棋盤\h實(shí)例327繪制棋子\h實(shí)例328清除棋子\h實(shí)例329游戲過程\h實(shí)例330判斷勝負(fù)結(jié)果\h第25章制作系統(tǒng)測試模塊\h系統(tǒng)測試概述\h實(shí)例331系統(tǒng)時(shí)間獲取的設(shè)計(jì)\h實(shí)例332磁盤信息顯示的設(shè)計(jì)\h實(shí)例333顯卡信息顯示的設(shè)計(jì)\h實(shí)例334環(huán)境變量顯示的設(shè)計(jì)\h實(shí)例335系統(tǒng)配置信息顯示的設(shè)計(jì)\h第26章制作硬件測試模塊\h硬件測試概述\h實(shí)例336主函數(shù)\h實(shí)例337鼠標(biāo)設(shè)置\h實(shí)例338獲取CapsLock鍵的狀態(tài)\h實(shí)例339控制揚(yáng)聲器聲音\h實(shí)例340獲取寄存器信息\h第27章制作學(xué)生信息管理系統(tǒng)\h系統(tǒng)概述\h實(shí)例341錄入學(xué)生信息模塊\h實(shí)例342查詢學(xué)生信息模塊\h實(shí)例343刪除學(xué)生信息模塊\h實(shí)例344插入學(xué)生信息模塊\h實(shí)例345學(xué)生成績排名模塊\h第28章制作學(xué)生個(gè)人消費(fèi)管理系統(tǒng)\h系統(tǒng)概述\h實(shí)例346錄入學(xué)生消費(fèi)信息模塊\h實(shí)例347查詢學(xué)生消費(fèi)信息模塊\h實(shí)例348刪除學(xué)生消費(fèi)信息模塊\h實(shí)例349顯示學(xué)生消費(fèi)信息模塊\h實(shí)例350保存學(xué)生消費(fèi)信息模塊\h第29章制作火車訂票系統(tǒng)\h系統(tǒng)概述\h實(shí)例351添加模塊\h實(shí)例352查詢模塊\h實(shí)例353訂票模塊\h實(shí)例354修改模塊\h實(shí)例355顯示模塊\h實(shí)例356保存模塊\h第30章制作通訊錄管理系統(tǒng)\h系統(tǒng)概述\h實(shí)例357功能菜單\h實(shí)例358通訊錄錄入\h實(shí)例359通訊錄查詢\h實(shí)例360通訊錄刪除\h實(shí)例361通訊錄顯示\h實(shí)例362通訊錄數(shù)據(jù)保存\h實(shí)例363數(shù)據(jù)加載\h第31章圖書管理系統(tǒng)\h圖書管理系統(tǒng)概述\h實(shí)例364顯示主菜單信息\h實(shí)例365顯示所有圖書信息\h實(shí)例366添加圖書信息\h實(shí)例367修改圖書信息\h實(shí)例368刪除圖書信息\h實(shí)例369查詢圖書信息\h第32章企業(yè)員工管理系統(tǒng)\h企業(yè)員工管理系統(tǒng)概述\h實(shí)例370系統(tǒng)初始化模塊\h實(shí)例371功能菜單模塊\h實(shí)例372系統(tǒng)登錄模塊\h實(shí)例373員工信息添加模塊\h實(shí)例374員工信息刪除模塊\h實(shí)例375員工信息查詢模塊\h實(shí)例376員工信息修改模塊\h實(shí)例377員工信息統(tǒng)計(jì)模塊\h實(shí)例378系統(tǒng)密碼重置模塊\h第33章商品管理系統(tǒng)\h商品管理系統(tǒng)概述\h實(shí)例379商品錄入\h實(shí)例380商品查詢\h實(shí)例381商品刪除\h實(shí)例382商品修改\h實(shí)例383商品記錄插入\h實(shí)例384商品記錄統(tǒng)計(jì)\h第34章網(wǎng)絡(luò)通信編程\h實(shí)例385網(wǎng)絡(luò)信息系統(tǒng)主程序\h實(shí)例386點(diǎn)對點(diǎn)通信\h實(shí)例387服務(wù)器中轉(zhuǎn)通信\h實(shí)例388程序調(diào)試與錯誤處理\h技術(shù)要點(diǎn)對應(yīng)實(shí)例位置\h光盤鏈接\h第1章基礎(chǔ)知識進(jìn)制轉(zhuǎn)換條件判斷多重循環(huán)打印圖形循環(huán)的數(shù)學(xué)應(yīng)用數(shù)組字符和字符串操作函數(shù)趣味計(jì)算宏定義與位運(yùn)算\h1.1進(jìn)制轉(zhuǎn)換計(jì)算機(jī)信息的編碼有很多種,二進(jìn)制、八進(jìn)制、十進(jìn)制及十六進(jìn)制都是常用的編碼。在編程和應(yīng)用過程中,經(jīng)常遇到它們之間的互換。本節(jié)介紹的幾個(gè)程序就實(shí)現(xiàn)了進(jìn)制間的轉(zhuǎn)換。\h實(shí)例001十進(jìn)制轉(zhuǎn)換為十六進(jìn)制這是一個(gè)可以提高基礎(chǔ)技能的實(shí)例實(shí)例位置:光盤\mingrisoft\01\001實(shí)例說明在C語言程序中,主要使用十進(jìn)制數(shù)。有時(shí)為了提高效率或其他一些原因,也會使用八進(jìn)制或十六進(jìn)制數(shù)。十進(jìn)制和十六進(jìn)制數(shù)之間可以直接轉(zhuǎn)換,不需要復(fù)雜的過程,運(yùn)行結(jié)果如圖1.1所示。圖1.1十進(jìn)制轉(zhuǎn)換為十六進(jìn)制技術(shù)要點(diǎn)主要利用輸入、輸出格式控制符。C語言規(guī)定,“%x”和“%d”分別代表十六進(jìn)制和十進(jìn)制數(shù)的輸入和輸出格式控制符。注意:在使用printf()及scanf()函數(shù)時(shí)要注意格式,尤其是scanf()函數(shù),scanf("%d",&i);中的&符號不要忘記寫。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件stdio.h。代碼如下:#include<stdio.h>(3)利用格式輸入函數(shù)scanf(),從鍵盤中獲得一個(gè)十進(jìn)制整數(shù),利用格式輸出函數(shù)將轉(zhuǎn)換后的結(jié)果輸出。(4)/*…*/中為程序注釋。(5)主要程序代碼如下:main()/*main()主函數(shù)*/{inti;/*定義一個(gè)整型變量i*/printf("pleaseinputdecimalismnumber:\n");/*雙引號內(nèi)普通字符原樣輸出并換行*/scanf("%d",&i);/*scanf()函數(shù)以十進(jìn)制形式獲得i的值*/printf("thehexnumberis%x",i);/*將i的值以十六進(jìn)制形式輸出*/}舉一反三根據(jù)本實(shí)例,讀者可以:實(shí)現(xiàn)十進(jìn)制轉(zhuǎn)二進(jìn)制或八進(jìn)制。實(shí)現(xiàn)二進(jìn)制、十六進(jìn)制或八進(jìn)制轉(zhuǎn)十進(jìn)制。\h實(shí)例002十進(jìn)制轉(zhuǎn)換為二進(jìn)制這是一個(gè)可以提高基礎(chǔ)技能的實(shí)例實(shí)例位置:光盤\mingrisoft\01\002實(shí)例說明實(shí)例001中介紹了一種較為簡單的轉(zhuǎn)換方式,其實(shí)進(jìn)制間相互轉(zhuǎn)換的方式有好多種,本實(shí)例也僅為其中一種,目的就是給大家編程提供一種思路,即怎樣將平時(shí)在紙上運(yùn)算的過程寫入程序中。運(yùn)行結(jié)果如圖1.2所示。圖1.2十進(jìn)制轉(zhuǎn)換為二進(jìn)制技術(shù)要點(diǎn)將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的具體過程有以下幾個(gè)要點(diǎn)。(1)要用數(shù)組來存儲每次對2取余的結(jié)果,所以在數(shù)據(jù)類型定義的時(shí)候要定義數(shù)組,并將其全部數(shù)據(jù)元素賦初值為0。(2)兩處用到for循環(huán),第一次for循環(huán)為0~14(本例中只考慮基本整型中的正數(shù)部分的轉(zhuǎn)換,所以最高位始終為0),第二次for循環(huán)為15~0,這里大家要注意不能改成0~15,因?yàn)樵趯⒚看螌?取余的結(jié)果存入數(shù)組時(shí)是從a[0]開始存儲的,所以輸出的時(shí)候就要從a[15]開始輸出,這也符合我們平時(shí)計(jì)算的過程。(3)%、/的應(yīng)用,%模運(yùn)算符,或稱求余運(yùn)算符,%兩側(cè)均應(yīng)為整型數(shù)據(jù)。/除法運(yùn)算符,兩個(gè)整數(shù)相除的結(jié)果為整數(shù),運(yùn)算的兩個(gè)數(shù)中有一個(gè)數(shù)為實(shí)數(shù),則結(jié)果是double型的。注意:for循環(huán)體中有多個(gè)語句要執(zhí)行而不是一句,所以{}要加在適當(dāng)位置,不要忘記寫。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件。代碼如下:#include<stdio.h>(3)數(shù)據(jù)類型聲明,數(shù)組元素賦初值均為0。(4)使用輸入函數(shù)獲得要進(jìn)行轉(zhuǎn)換的十進(jìn)制數(shù)。(5)兩個(gè)for循環(huán)語句實(shí)現(xiàn)十進(jìn)制轉(zhuǎn)換二進(jìn)制的過程,并將最結(jié)果輸出。(6)第二個(gè)for循環(huán)中if條件語句作用使輸出結(jié)果更直觀。(7)主要程序代碼如下:main(){inti,j,n,m;/*定義變量i,j,n,m*/inta[16]={0};/*定義數(shù)組a,元素初始值為0*/clrscr();/*清屏*/printf("pleaseinputthedecimalismnumber(0~32767):\n");/*輸出雙引號內(nèi)普通字符*/scanf("%d",&n);/*輸入n的值*/for(m=0;m<15;m++)/*for循環(huán)從0~14,最高為符號位,本例始終為0*/{i=n%2;/*取2的余數(shù)*/j=n/2;/*取被2整除的結(jié)果*/n=j;a[m]=i;/*將余數(shù)每次的余數(shù)存入數(shù)組a中*/}for(m=15;m>=0;m--){printf("%d",a[m]);/*for循環(huán),將數(shù)組中的16個(gè)元素從后往前輸出*/if(m%4==0)printf("");/*每輸出4個(gè)元素,輸出一個(gè)空格*/}}舉一反三根據(jù)本實(shí)例,讀者可以:實(shí)現(xiàn)十進(jìn)制(基本整型中的負(fù)數(shù)部分)轉(zhuǎn)二進(jìn)制。實(shí)現(xiàn)二進(jìn)制、十六進(jìn)制或八進(jìn)制轉(zhuǎn)十進(jìn)制。\h實(shí)例003n進(jìn)制轉(zhuǎn)換為十進(jìn)制這是一個(gè)可以提高基礎(chǔ)技能的實(shí)例實(shí)例位置:光盤\mingrisoft\01\003實(shí)例說明編程實(shí)現(xiàn)任意輸入一個(gè)數(shù)并輸入其進(jìn)制,即可將該數(shù)轉(zhuǎn)換為十進(jìn)制輸出。運(yùn)行結(jié)果如圖1.3所示。圖1.3十進(jìn)制轉(zhuǎn)換為十六進(jìn)制技術(shù)要點(diǎn)程序中用到了字符串函數(shù)strupr()和strlen(),前者用于將括號內(nèi)指定字符串中的小寫字母轉(zhuǎn)換為大寫字母,其余字符串不變,后者用于求括號中指定字符串的長度,即有效字符的個(gè)數(shù)。使用這兩個(gè)函數(shù)前應(yīng)在程序開頭加入如下語句:#include<string.h>本例的主要思路是用字符型數(shù)組a存放一個(gè)n進(jìn)制數(shù),再對數(shù)組中的每個(gè)元素進(jìn)行判斷,如果是0~9的數(shù)字則進(jìn)行以下處理:t=a[i]-'0';如果是字母則進(jìn)行以下處理:t=a[i]-'A'+10;如果輸入的數(shù)據(jù)與進(jìn)制不符,則輸出數(shù)據(jù)錯誤并退出程序。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件。代碼如下:#include<stdio.h>#include<string.h>(3)開始主函數(shù)的編寫,從鍵盤中輸入數(shù)據(jù)并輸入其進(jìn)制,如果數(shù)據(jù)與進(jìn)制不符則輸出錯誤并退出程序,否則判斷是數(shù)據(jù)還是字母并進(jìn)行相應(yīng)處理。(4)將最終得出的結(jié)果t1輸出。(5)主要程序代碼如下:main(){longt1;inti,n,t,t3;chara[100];printf("pleaseinputanumberstring:\n");gets(a);/*輸入n進(jìn)制數(shù)存到數(shù)組a中*/strupr(a);/*將a中的小寫字母轉(zhuǎn)換成大寫字母*/t3=strlen(a);/*求出數(shù)組a的長度*/t1=0;/*為t1賦初值0*/printf("pleaseinputn(2or8or16):\n");scanf("%d",&n);/*輸入進(jìn)制數(shù)*/for(i=0;i<t3;i++){if(a[i]-'0'>=n&&a[i]<'A'||a[i]-'A'+10>=n)/*判斷輸入的數(shù)據(jù)和進(jìn)制數(shù)是否相符*/{printf("dataerror!!");/*輸出錯誤*/exit(0);/*退出程序*/}if(a[i]>='0'&&a[i]<='9')/*判斷是否為數(shù)字*/t=a[i]-'0';/*求出該數(shù)字賦給t*/elseif(n>=11&&(a[i]>='A'&&a[i]<='A'+n-10))/*判斷是否為字母*/t=a[i]-'A'+10;/*求出字母所代表的十進(jìn)制數(shù)*/t1=t1*n+t;/*求出最終轉(zhuǎn)換成的十進(jìn)制數(shù)*/}printf("thedecimalis%ld\n",t1);/*將最終結(jié)果輸出*/}舉一反三根據(jù)本實(shí)例,讀者可以:實(shí)現(xiàn)十進(jìn)制數(shù)轉(zhuǎn)換為n進(jìn)制數(shù)。實(shí)現(xiàn)n進(jìn)制數(shù)轉(zhuǎn)換為m進(jìn)制數(shù)。\h實(shí)例004以IP地址形式輸出這是一個(gè)自娛自樂的實(shí)例實(shí)例位置:光盤\mingrisoft\01\004實(shí)例說明任意輸入32位的二進(jìn)制數(shù),編程實(shí)現(xiàn)將該二進(jìn)制數(shù)轉(zhuǎn)換成IP地址形式。例如:輸入:11111111111111111111111100000000輸出:255.255.255.0運(yùn)行結(jié)果如圖1.4所示。圖1.4以IP地址形式輸出技術(shù)要點(diǎn)本實(shí)例主要通過將輸入的二進(jìn)制數(shù)以每8位數(shù)為一個(gè)單位分開,再通過自定義的函數(shù)將這8位二進(jìn)制數(shù)轉(zhuǎn)換成對應(yīng)的十進(jìn)制數(shù)。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件。代碼如下:#include<stdio.h>(3)自定義bin_dec()函數(shù),作用是將二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)。代碼如下:intbin_dec(intx,intn)/*自定義函數(shù)將二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)*/{if(n==0)/*遞歸結(jié)束條件*/{return1;}returnx*bin_dec(x,n-1);/*遞歸調(diào)用bin_dec()函數(shù)*/}(4)主函數(shù)程序代碼如下:main(){inti;intip[4]={0};chara[33];/*存放輸入的二進(jìn)制數(shù)*/printf("pleaseinputbinarynumber:\n");scanf("%s",a);/*二進(jìn)制數(shù)以字符串形式讀入*/for(i=0;i<8;i++){if(a[i]=='1'){ip[0]+=bin_dec(2,7-i);/*計(jì)算0~7轉(zhuǎn)換的結(jié)果*/}}for(i=8;i<16;i++){if(a[i]=='1'){ip[1]+=bin_dec(2,15-i);/*計(jì)算8~15轉(zhuǎn)換的結(jié)果*/}}for(i=16;i<24;i++){if(a[i]=='1'){ip[2]+=bin_dec(2,23-i);/*計(jì)算16~23轉(zhuǎn)換的結(jié)果*/}}for(i=24;i<32;i++){if(a[i]=='1'){ip[3]+=bin_dec(2,31-i);/*計(jì)算24~31轉(zhuǎn)換的結(jié)果*/}if(a[i]=='\0'){break;}}printf("ip:\n");printf("%d.%d.%d.%d\n",ip[0],ip[1],ip[2],ip[3]);/*將最終結(jié)果以IP形式輸出*/}舉一反三根據(jù)本實(shí)例,讀者可以:實(shí)現(xiàn)輸入一個(gè)十進(jìn)制數(shù),在屏幕上輸出其原碼。實(shí)現(xiàn)輸入一個(gè)十進(jìn)制的負(fù)數(shù),在屏幕上輸出其補(bǔ)碼。\h1.2條件判斷從程序流程的角度來看,程序可以分為3種基本結(jié)構(gòu),即順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。這3種基本結(jié)構(gòu)可以組成各種復(fù)雜程序。C語言提供了多種語句來實(shí)現(xiàn)這些程序結(jié)構(gòu)。本節(jié)介紹的這幾個(gè)實(shí)例就是教讀者如何來實(shí)現(xiàn)分支結(jié)構(gòu),使讀者對C程序有進(jìn)一步的認(rèn)識,為后面各章的學(xué)習(xí)打下基礎(chǔ)。\h實(shí)例005a\h2\h+b\h2\h這是一個(gè)可以提高基礎(chǔ)技能的實(shí)例實(shí)例位置:光盤\mingrisoft\01\005實(shí)例說明編程要求輸入整數(shù)a和b,若a2+b2的結(jié)果大于100,則輸出a2+b2的值,否則輸出a+b的結(jié)果。運(yùn)行結(jié)果如圖1.5所示。圖1.5a2+b2技術(shù)要點(diǎn)本實(shí)例的基本思路是首先求出輸入的兩個(gè)數(shù)的平方和,再對該平方和進(jìn)行判斷,如果平方和大于100,則將平方和輸出,否則輸出a+b的值。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件。代碼如下:#include<stdio.h>(3)利用if語句對計(jì)算出的平方和進(jìn)行判斷,如果大于100,則將平方和輸出,否則輸出a+b的值。(4)主函數(shù)程序代碼如下:main(){inta,b,x,y;/*定義變量為基本整型*/printf("pleaseinputaandb:\n");scanf("%d%d",&a,&b);/*輸入變量a和b的值*/x=a*a+b*b;/*計(jì)算出平方和*/if(x>100)/*判斷平方和是否大于100*/{printf("a^2+b^2=");printf("%d",x);/*如果平方和大于100,則輸出平方和*/}elseprintf("a+b=%d",a+b);/*如果平方和不大于100,則輸出兩數(shù)之和*/}舉一反三根據(jù)本實(shí)例,讀者可以:輸入整數(shù)a和b,若a3-b3小于0,則輸出a-b的值,否則輸出a3-b3的結(jié)果。輸入整數(shù)a和b,若a-b的結(jié)果為奇數(shù),則輸出該值,否則輸出提示信息。\h實(shí)例006判斷閏年這是一個(gè)可以啟發(fā)思維的實(shí)例實(shí)例位置:光盤\mingrisoft\01\006實(shí)例說明從鍵盤上輸入一個(gè)表示年份的整數(shù),判斷該年份是否是閏年,判斷后的結(jié)果顯示在屏幕上。運(yùn)行結(jié)果如圖1.6所示。圖1.6判斷閏年技術(shù)要點(diǎn)(1)計(jì)算閏年的方法用自然語言描述如下:如果某年能被4整除但不能被100整除,或者該年能被400整除則該年為閏年。在本實(shí)例中我們用如下表達(dá)式來表示上面這句話:year%4==0&&year%100!=0)||year%400==0除本實(shí)例外判斷閏年還有許多方法,下面給出的算法(偽代碼描述)也為其中一種:{If(某年能被400整除)輸出是閏年;Elseif(該年能被100整除)輸出不是閏年;Elseif(該年能被4整除)輸出是閏年;Else輸出不是閏年;}這種算法略顯繁瑣,讀者可以根據(jù)實(shí)際情況選擇適當(dāng)?shù)姆椒?。?)將判斷閏年的自然語言轉(zhuǎn)換成C語言要求的語法形式時(shí),需要用到邏輯運(yùn)算符&&、||和!,具體使用規(guī)則如下?!?&邏輯與(相當(dāng)于其他語言中的AND),a&&b若a,b為真,則a&&b為真?!駖|邏輯或(相當(dāng)于其他語言中的OR),a||b若a、b之一為真,則a||b為真?!瘢∵壿嫹牵ㄏ喈?dāng)于其他語言中的NOT),a若為真,則!a為假。●三者的優(yōu)先次序是:!—>&&—>||,即“!”為三者中最高的。注意:程序編寫過程中要注意“==”和“=”使用的區(qū)別,“==”為關(guān)系運(yùn)算符,方向“自左至右”,而“=”是賦值運(yùn)算符,方向“自右至左”。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件stdio.h。代碼如下:#include<stdio.h>(3)定義數(shù)據(jù)類型,本實(shí)例中定義year為基本整型。(4)使用輸入函數(shù)從鍵盤中獲得表示年份的整數(shù)。(5)使用if語句進(jìn)行條件判斷,如果滿足括號內(nèi)的條件則輸出是閏年,否則輸出不是閏年。(6)主要程序代碼如下:main(){intyear;/*定義基本整型變量year*/printf("pleaseinputtheyear:\n");scanf("%d",&year);/*從鍵盤輸入表示年份的整數(shù)*/if((year%4==0&&year%100!=0)||year%400==0)/*判斷閏年條件*/printf("%disaleapyear",year);/*滿足條件的輸出是閏年*/elseprintf("%disnotaleapyear",year);/*否則輸出不是閏年*/}舉一反三根據(jù)本實(shí)例,讀者可以:編程實(shí)現(xiàn)2009月份表的輸出。編程實(shí)現(xiàn)萬年歷。\h實(shí)例007階梯問題這是一個(gè)可以啟發(fā)思維的實(shí)例實(shí)例位置:光盤\mingrisoft\01\007實(shí)例說明在你面前有一條長長的階梯,如果你每步跨2階,那么最后剩1階;如果你每步跨3階,那么最后剩2階;如果你每步跨5階,那么最后剩4階;如果你每步跨6階,那么最后剩5階;只有當(dāng)你每步跨7階時(shí),最后才正好走完,一階也不剩。請問這條階梯至少有多少階?(求所有三位階梯數(shù))運(yùn)行結(jié)果如圖1.7所示。圖1.7階梯問題技術(shù)要點(diǎn)本實(shí)例中的關(guān)鍵是如何來寫if語句中的條件,如果這個(gè)條件大家能夠順利寫出,那整個(gè)程序也基本上完成了。根據(jù)題意來看,“每步跨2階,那么最后剩1階……當(dāng)每步跨7階時(shí),最后才正好走完,一階也不?!笨梢钥闯鲱}的規(guī)律就是總的階梯數(shù)對每步跨的階梯數(shù)取余得的結(jié)果就是剩余階梯數(shù),這5種情況是&&的關(guān)系,也就說必須同時(shí)滿足。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件。代碼如下:#include<stdio.h>(3)用for循環(huán)對大于等于100且小于1000的所有3位整數(shù)進(jìn)行篩選。(4)使用if語句根據(jù)題意設(shè)置相應(yīng)的條件,如果滿足條件則輸出該結(jié)果,否則繼續(xù)下次循環(huán)。(5)主要程序代碼如下:main(){inti;/*定義基本整型變量i*/for(i=100;i<1000;i++)/*for循環(huán)求100~1000的所有3位數(shù)*/if(i%2==1&&i%3==2&&i%5==4&&i%6==5&&i%7==0)/*根據(jù)題意寫出對應(yīng)的條件*/printf("thenumberofthestairsis%d\n",i);/*輸出階梯數(shù)*/}舉一反三根據(jù)本實(shí)例,讀者可以:編程輸出國際象棋棋盤。求1~1000滿足用3除余2、用5除余3、用7除余2的所有數(shù)并輸出,要求每行輸出5個(gè)數(shù)。\h實(shí)例008評定成績這是一個(gè)可以提高基礎(chǔ)技能的實(shí)例實(shí)例位置:光盤\mingrisoft\01\008實(shí)例說明編程對輸入的百分制分?jǐn)?shù)給出相應(yīng)的等級,分?jǐn)?shù)大于等于90為“A”,80~89為“B”,70~79為“C”,60~69為“D”,60分以下為“E”。運(yùn)行結(jié)果如圖1.8所示。圖1.8評定成績技術(shù)要點(diǎn)本實(shí)例的思路如下:輸入成績,當(dāng)輸入的成績是100時(shí),我們可以把它看成90分,因?yàn)?00分和90分都是A等的;對輸入的成績使用除法便求出其高位數(shù)字,因?yàn)橥ㄟ^高位數(shù)字就可以判斷出輸出的成績在哪個(gè)等級;使用switch語句對取出的高位數(shù)字進(jìn)行選擇判斷,如果高位數(shù)為9則是A等,如果是8則是B等,依此類推,分別出現(xiàn)C、D、E等。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件。代碼如下:#include<stdio.h>(3)利用算術(shù)運(yùn)算符“/”取輸入成績的高位數(shù),使用switch語句對取出的高位數(shù)做選擇,根據(jù)不同數(shù)字,給出不同等級。(4)主函數(shù)程序代碼如下:main(){intscore;printf("\npleaseenterscore(score<=100):");scanf("%d",&score);/*輸入學(xué)生成績*/if(score==100)/*如果成績是100則和90是一樣的等級*/score=90;score=score/10;/*求出成績的高位數(shù)字*/switch(score){case9:printf("thegradeisA");/*等級為A*/break;case8:printf("thegradeisB");/*等級為B*/break;case7:printf("thegradeisC");/*等級為C*/break;case6:printf("thegradeisD");/*等級為D*/break;default:printf("thegradeisE");/*等級為E*/}}舉一反三根據(jù)本實(shí)例,讀者可以:利用switch語句求輸入某年某月某日,判斷這一天是這一年的第幾天。企業(yè)根據(jù)員工創(chuàng)造的利潤將工資分為5個(gè)等級。利潤低于或等于10萬元時(shí),為五等;利潤高于10萬元,低于20萬元時(shí),為四等;20萬到40萬之間時(shí),為三等;60萬到100萬之間時(shí),為二等;超過100萬元時(shí),為一等。從鍵盤中輸入員工創(chuàng)造的利潤,輸出其工資等級。\h1.3多重循環(huán)打印圖形在學(xué)習(xí)編程的過程中經(jīng)常能夠遇到字符組成的各種圖形,對于初學(xué)者來說往往不知道該用什么方法實(shí)現(xiàn),本節(jié)列舉的幾個(gè)實(shí)例就是專門介紹如何使用多重循環(huán)實(shí)現(xiàn)圖形的打印。\h實(shí)例009用#打印三角形這是一個(gè)可以啟發(fā)思維的實(shí)例實(shí)例位置:光盤\mingrisoft\01\009實(shí)例說明用#打印如下所示的三角形,運(yùn)行結(jié)果如圖1.9所示。圖1.9用#打印的三角形#########################技術(shù)要點(diǎn)本實(shí)例中多次用到for循環(huán),以下是對for循環(huán)的詳細(xì)講解。for語句的一般形式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句它的執(zhí)行過成如下。(1)先求解表達(dá)式1。(2)求解表達(dá)式2,若其值為非0,則執(zhí)行for語句中指定的內(nèi)嵌語句,然后執(zhí)行下面第3步。若表達(dá)式2值為0,則結(jié)束循環(huán),轉(zhuǎn)到下面第(5)步。(3)求解表達(dá)式3。(4)返回第2步繼續(xù)執(zhí)行。(5)循環(huán)結(jié)束,執(zhí)行for語句下面的一個(gè)語句。說明如下。●表達(dá)式1通常用來給循環(huán)變量賦初值,一般是賦值表達(dá)式。也允許在for語句外給循環(huán)變量賦初值,此時(shí)可以省略該表達(dá)式?!癖磉_(dá)式2通常是循環(huán)條件,一般為關(guān)系表達(dá)式或邏輯表達(dá)式。如果表達(dá)式2省略,既不判斷循環(huán)條件,也就是認(rèn)為表達(dá)式2始終為真,則循環(huán)將無終止地進(jìn)行下去。●表達(dá)式3通常可用來修改循環(huán)變量的值,一般是賦值語句。表達(dá)式3也可以省略,但此時(shí)程序設(shè)計(jì)者應(yīng)另外設(shè)法保證循環(huán)能正常結(jié)束。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件。代碼如下:#include<stdio.h>(3)定義數(shù)據(jù)類型,本實(shí)例中i、j、k均為基本整型。(4)第一個(gè)for循環(huán)控制整個(gè)圖形的行數(shù),本實(shí)例中的圖形共5行,所以i的范圍為1~5。(5)第二個(gè)for循環(huán)用來控制空格的數(shù)量,這時(shí)需要找出每行空格數(shù)在圖形中的規(guī)律,第1行需4個(gè)空格,第2行需3個(gè)空格,依此類推第5行需0個(gè)空格,所以找出其中規(guī)律即每行的空格數(shù)等于5減去行數(shù),這樣就確定了第二個(gè)for循環(huán)中j的范圍。(6)第三個(gè)for循環(huán)用來控制輸出#的數(shù)量,同樣也要找出每行需輸出的字符個(gè)數(shù)的規(guī)律,第1行輸出1個(gè)#,第2行輸出3個(gè)#,依此類推第5行輸出9個(gè)#,所以找出其中規(guī)律即每行需輸出#的個(gè)數(shù)等于行數(shù)的2倍減1,這樣也就確定了第三個(gè)for循環(huán)中k的范圍。(7)主要程序代碼如下:main(){inti,j,k;/*定義變量i,j,k為基本整型*/for(i=1;i<=5;i++)/*控制行數(shù)*/{for(j=1;j<=5-i;j++)/*控制空格數(shù)*/printf("");for(k=1;k<=2*i-1;k++)/*控制打印#號的數(shù)量*/printf("#");printf("\n");}}舉一反三根據(jù)本實(shí)例,讀者可以:編寫程序輸出如下圖形:123456612345561234456123用*打印菱形:*************************\h實(shí)例010用*打印圖形這是一個(gè)可以啟發(fā)思維的實(shí)例實(shí)例位置:光盤\mingrisoft\01\010實(shí)例說明用*打印如下圖形,運(yùn)行結(jié)果如圖1.10所示。圖1.10用*打印圖形*************************技術(shù)要點(diǎn)本實(shí)例使用了字符數(shù)組,可能這時(shí)有讀者會問輸出這個(gè)圖形用上個(gè)實(shí)例講過的方法可以嗎?答案是肯定的,當(dāng)然可以。像本實(shí)例這種每行個(gè)數(shù)是一定的,通常也可以采用字符數(shù)組這種方法。程序中字符數(shù)組是一個(gè)一個(gè)輸出的,當(dāng)然也可以用“%s”的形式將數(shù)組中的元素一次性輸出,也就是將程序中的如下代碼:for(k=0;k<5;k++)printf("%c",a[k]);用下面的語句:printf("%s",a);替代,此時(shí)千萬不要忘記將數(shù)組長度從5改為6,因?yàn)樽址诖鎯Φ臅r(shí)候會自動在結(jié)尾處加“\0”作為結(jié)束標(biāo)志。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件。代碼如下:#include<stdio.h>(3)定義數(shù)據(jù)類型,本實(shí)例中i、j、k均為基本整型,數(shù)組a為字符型。(4)第一個(gè)for循環(huán)控制整個(gè)圖形的行數(shù),本實(shí)例中的圖形共5行,所以i的范圍為0~4。(5)第二個(gè)for循環(huán)用來控制空格的數(shù)量。(6)第三個(gè)for循環(huán)用將數(shù)組a中的元素逐個(gè)輸出。(7)主要程序代碼如下:main(){chara[5]={'*','*','*','*','*'};/*定義字符型數(shù)組,五個(gè)元素初值均為'*'*/inti,j,k;/*定義變量i,j,k為基本整型*/for(i=0;i<5;i++)/*輸出5行*/{for(j=1;j<=i;j++)/*輸出空格的數(shù)量隨著行數(shù)的變化而變化*/printf("");for(k=0;k<5;k++)printf("%c",a[k]);/*將a數(shù)組中的元素輸出*/printf("\n");/*每輸出一行后換行*/}}舉一反三根據(jù)本實(shí)例,讀者可以:用*打印如下圖形:************************************編寫程序輸出如下圖形:#*******##*****##***##*##\h實(shí)例011繪制余弦曲線本實(shí)例是一個(gè)提高基礎(chǔ)技能的程序?qū)嵗恢茫汗獗P\mingrisoft\01\011實(shí)例說明編程實(shí)現(xiàn)用“*”繪制余弦曲線,運(yùn)行結(jié)果如圖1.11所示。圖1.11繪制余弦曲線技術(shù)要點(diǎn)繪制余弦曲線用到了反余弦函數(shù)acos(),通過縱坐標(biāo)的值來求出橫坐標(biāo)的值,確定了橫坐標(biāo)的值,其對稱位置的橫坐標(biāo)值也就可以確定,即用62減去確定的橫坐標(biāo)值,那么為什么是62呢?這里的62是一個(gè)近似值即2π×10。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件:#include<stdio.h>#include<math.h>(3)調(diào)用acos()函數(shù)計(jì)算出相應(yīng)的橫坐標(biāo)位置,使用for循環(huán)在未到該位置之前輸出空格,直到到達(dá)指定位置再輸出*,對稱位置相同。(4)主函數(shù)程序代碼如下:main(){doubley;intx,m;for(y=1;y>=-1;y-=0.1)/*0到π,π到2π分別繪制21個(gè)點(diǎn)*/{m=acos(y)*10;/*求出對應(yīng)的橫坐標(biāo)位置*/for(x=1;x<m;x++)printf("");/*畫*前畫空格數(shù)*/printf("*");/*畫**/for(;x<62-m;x++)/*畫出對稱面的**/printf("");printf("*\n");}getch();}舉一反三根據(jù)本實(shí)例,讀者可以:繪制正切曲線。繪制余切曲線。\h實(shí)例012打印乘法口訣表這是一個(gè)可以啟發(fā)思維的實(shí)例實(shí)例位置:光盤\mingrisoft\01\012實(shí)例說明打印乘法口訣表。運(yùn)行結(jié)果如圖1.12所示。圖1.12打印乘法口訣表技術(shù)要點(diǎn)如何打印乘法口訣表關(guān)鍵是要分析程序的算法思想,本實(shí)例中兩次用到for循環(huán),第一次for循環(huán)即將它看成乘法口訣表的行數(shù),同時(shí)也是每行進(jìn)行乘法運(yùn)算的第一個(gè)因子,第二個(gè)for循環(huán)范圍的確定建立在第一個(gè)for循環(huán)的基礎(chǔ)上,即第二個(gè)for循環(huán)的最大取值是第一個(gè)for循環(huán)中變量的值。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件:#include<stdio.h>(3)定義數(shù)據(jù)類型,本實(shí)例中i、j均為基本整型。(4)第一個(gè)for循環(huán)控制乘法口訣表的行數(shù)及每行乘法中的第一個(gè)因子。本實(shí)例為九九乘法口訣表,故變量i的取值范圍為1~9。(5)第二個(gè)for循環(huán)中變量j是每行乘法運(yùn)算中的另一個(gè)因子,運(yùn)行到第幾行j的最大值也就為幾。(6)主要程序代碼如下:main(){inti,j;/*定義i,j兩個(gè)變量為基本整型*/for(i=1;i<=9;i++)/*for循環(huán)i為乘法口訣表中的行數(shù)*/{for(j=1;j<=i;j++)/*乘法口訣表中的另一個(gè)因子,取值范圍受一個(gè)因子i的影響*/printf("%d*%d=%d",i,j,i*j);/*輸出i,j及i*j的值*/printf("\n");/*打完每行值后換行*/}}舉一反三根據(jù)本實(shí)例,讀者可以:利用循環(huán)輸出以下圖形:*#*#*#*#$利用循環(huán)輸出以下圖形:0000100010001000100010000\h實(shí)例013打印楊輝三角這是一個(gè)可以啟發(fā)思維的實(shí)例實(shí)例位置:光盤\mingrisoft\01\013實(shí)例說明打印出以下的楊輝三角形(要求打印出10行)。運(yùn)行結(jié)果如圖1.13所示。圖1.13打印楊輝三角11112113311464115101051……技術(shù)要點(diǎn)要想打印出楊輝三角首先得找出圖形中數(shù)字間的規(guī)律,從圖形中我們分析出這些數(shù)字間有以下規(guī)律?!衩恳恍械牡谝涣芯鶠??!駥蔷€上的數(shù)字也均為1?!癯恳恍械谝涣泻蛯蔷€上的數(shù)字外,其余數(shù)字均等于其上一行同列數(shù)字與其上一行前一列數(shù)字之和。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件:#include<stdio.h>(3)定義數(shù)據(jù)類型,本實(shí)例中i、j、a[11][11]均為基本整型。(4)第一個(gè)for循環(huán)中變量i的范圍為1~10,循環(huán)體中語句a[i][i]將對角線元素置1,語句a[i][1]=1將每行中的第一列置1。(5)用兩個(gè)for循環(huán)實(shí)現(xiàn)除對角線和每行第一個(gè)元素外其他元素的賦值過程,即a[i][j]=a[i-1][j-1]+a[i-1][j]。(6)再使用for循環(huán)的嵌套將數(shù)組a中的所有元素輸出。(7)主要程序代碼如下:main(){inti,j,a[11][11];/*定義i,j,a[11][11]為基本整型*/for(i=1;i<11;i++)/*for循環(huán)i的范圍從1到10*/{a[i][i]=1;/*對角線元素全為1*/a[i][1]=1;/*每行第一列元素全為1*/}for(i=3;i<11;i++)/*for循環(huán)范圍從第3行開始到第10行*/for(j=2;j<=i-1;j++)/*for循環(huán)范圍從第2列開始到該行行數(shù)減一列為止*/a[i][j]=a[i-1][j-1]+a[i-1][j];/*第i行j列等于第i-1行j-1列的值加上第i-1行j列的值*/for(i=1;i<11;i++){for(j=1;j<=i;j++)printf("%4d",a[i][j]);/*通過上面兩次for循環(huán)將二維數(shù)組a中元素輸出*/printf("\n");/*每輸出完一行進(jìn)行一次換行*/}}舉一反三根據(jù)本實(shí)例,讀者可以:從鍵盤中輸入如下字母“a、b、c、d、e、f”,輸出時(shí)的順序如下:“f、a、b、c、d、e”。編程實(shí)現(xiàn)通過循環(huán)按行順序?yàn)橐粋€(gè)5×5的二維數(shù)組data賦1~25的自然數(shù),然后輸出該數(shù)組的左下半三角形。\h1.4循環(huán)的數(shù)學(xué)應(yīng)用循環(huán)的應(yīng)用十分廣泛,在1.3節(jié)的實(shí)例中,我們主要介紹了如何利用循環(huán)來輸出特殊圖形,這一節(jié)主要介紹循環(huán)另一方面的應(yīng)用,即在數(shù)學(xué)方面的應(yīng)用。\h實(shí)例014序列求和這是一個(gè)可以啟發(fā)思維的實(shí)例實(shí)例位置:光盤\mingrisoft\01\014實(shí)例說明用while循環(huán)做一個(gè)簡單的計(jì)算s=1+1/2+1/3+…+1/n。運(yùn)行結(jié)果如圖1.14所示。圖1.14序列求和技術(shù)要點(diǎn)本實(shí)例中用到while循環(huán),這也是實(shí)現(xiàn)累加求和的關(guān)鍵,以下是對其使用方法的講解。while語句用來實(shí)現(xiàn)“當(dāng)型”循環(huán)結(jié)構(gòu)。其一般形式如下:while(表達(dá)式)語句其語義是:當(dāng)表達(dá)式為非0值時(shí),執(zhí)行while語句中的內(nèi)嵌語句。其特點(diǎn)是:先判斷表達(dá)式,后執(zhí)行語句。說明如下。●while語句中的表達(dá)式一般是關(guān)系表達(dá)或邏輯表達(dá)式,只要表達(dá)式的值為真(非0)即可繼續(xù)循環(huán)?!裱h(huán)體如果包含一個(gè)以上的語句,應(yīng)該用花括弧括起來,以復(fù)合語句形式出現(xiàn)。如果不加花括弧則while語句的范圍知道while后面第一個(gè)分號處。●在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語句以避免死循環(huán)。提到while語句就不能不提到do-while,首先看下do-while語句的一般形式:do循環(huán)體語句while(表達(dá)式);其語義是:先執(zhí)行一次指定的循環(huán)體語句,然后判別表達(dá)式,當(dāng)表達(dá)式的值為非零(真)時(shí),返回重新執(zhí)行循環(huán)體語句,如此反復(fù),直到表達(dá)式的值等于0為止,此時(shí)的循環(huán)結(jié)束。其特點(diǎn)是:先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件:#include<stdio.h>(3)定義數(shù)據(jù)類型,本實(shí)例中i、n均為基本整型,sum為雙精度型并賦初值0。(4)使用scanf函數(shù)獲取n的值。(5)當(dāng)i小于等于n時(shí),執(zhí)行循環(huán)體語句,這里的循環(huán)體語句由兩個(gè)語句組成,所以用{}括起來。第一個(gè)語句實(shí)現(xiàn)累加求和,而第二個(gè)語句是實(shí)現(xiàn)變量自加。(6)將n和sum的值輸出。(7)主要程序代碼如下:main(){inti=1,n;/*定義變量i,j為基本整型并給i賦初值1*/doublesum=0;/*定義變量s為雙精度型并賦初值0*/printf("inputn:\n");scanf("%d",&n);/*scanf函數(shù)獲取n的值*/while(i<=n)/*當(dāng)i小于等于n時(shí),s逐次累加求和*/{sum=sum+1.0/(double)i;i++;}printf("n=%d,sum=%lf\n",n,sum);/*將n與sum的值打印輸出*/}舉一反三根據(jù)本實(shí)例,讀者可以:求1~100中所有整數(shù)相加的和。求平均分:任意輸入某學(xué)生的五門學(xué)科成績,求出總成績及平均分。\h實(shí)例015簡單的級數(shù)運(yùn)算這是一個(gè)可以啟發(fā)思維的實(shí)例實(shí)例位置:光盤\mingrisoft\01\015實(shí)例說明有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13……求出這個(gè)數(shù)列的前20項(xiàng)之和。運(yùn)行結(jié)果如圖1.15所示。圖1.15簡單的級數(shù)運(yùn)算技術(shù)要點(diǎn)本實(shí)例的關(guān)鍵是分析這個(gè)分?jǐn)?shù)序列有什么規(guī)律,只要找出其中的規(guī)律,程序代碼的編寫就相對簡單了許多??催@個(gè)分?jǐn)?shù)序列,我們不難發(fā)現(xiàn)前一個(gè)分?jǐn)?shù)的分子是后一個(gè)分?jǐn)?shù)的分母,并且前一個(gè)分?jǐn)?shù)的分子與分母的和是后一個(gè)分?jǐn)?shù)的分子。題中要求求出這個(gè)數(shù)列的前20項(xiàng)之和,那么我們只要讓循環(huán)執(zhí)行20次即可。循環(huán)語句我們前面已介紹過3種,使用其中任何一種均可,本實(shí)例采用for語句。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件:#include<stdio.h>(3)定義數(shù)據(jù)類型,本實(shí)例中n、t均為基本整型,a、b、sum為單精度型并分別賦初值2、1、0。(4)使用for語句實(shí)現(xiàn)求前20項(xiàng)的和。(5)循環(huán)體中第二個(gè)語句,即t=a;a=a+b;b=t;,就是借助中間變量t來實(shí)現(xiàn)將前一個(gè)分?jǐn)?shù)的分子a賦給后一個(gè)分?jǐn)?shù)的分母b,將前一個(gè)分?jǐn)?shù)的分子a和分母b的和賦給后一個(gè)分?jǐn)?shù)的分子a。(6)將最終所求的和即sum的值輸出。(7)主要程序代碼如下:main(){intn,t;/*定義變量n,t為基本整型*/floata=2,b=1,sum=0;/*定義變量a,b,sum單精度型并分別賦初值2,1,0*/for(n=1;n<=20;n++)/*for循環(huán)變量n的范圍從1到20*/{sum=sum+a/b;/*累加求和*/t=a;a=a+b;b=t;/*借助中間變量t完成后一個(gè)分?jǐn)?shù)與前一個(gè)分?jǐn)?shù)間數(shù)值間的轉(zhuǎn)換*/}printf("sumis%f\n",sum);/*將最終所求的和sum輸出*/}舉一反三根據(jù)本實(shí)例,讀者可以:嘗試將本實(shí)例用while循環(huán)編寫。雞兔共有30只,腳共有90只,編程計(jì)算雞、兔各有多少只。\h實(shí)例016用while語句求n!這是一個(gè)可以提高分析能力的實(shí)例實(shí)例位置:光盤\mingrisoft\01\016實(shí)例說明3!=3*2*1,5!=5*4*3*2*1,依此類推n!=n*(n-1)*…*2*1,使用while語句求n!。運(yùn)行結(jié)果如圖1.16所示。圖1.16用while語句求n!技術(shù)要點(diǎn)(1)在寫程序之前首先要理清求n!的思路。求一個(gè)數(shù)n的階乘也就是用n*(n-1)*(n-2)*…*2*1,那么反過來從1一直乘到n求依然成立。當(dāng)n為0和1的時(shí)候我們單獨(dú)考慮,此時(shí)它們的階乘均為1。(2)求得的階乘的最終結(jié)果,這里我們要給它定義為單精度或雙精度型,如果定義為整型就很容易出現(xiàn)溢出現(xiàn)象。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件:#include<stdio.h>(3)定義數(shù)據(jù)類型,本實(shí)例中i、n均為基本整型,fac為單精度型并分別賦初值1。(4)用if語句判斷如果輸入的數(shù)是0或1,輸出階乘是1。(5)當(dāng)while語句中的表達(dá)式i小于等于輸入的數(shù)n時(shí)執(zhí)行while循環(huán)體中的語句,fac=fac*i作用是當(dāng)i為2時(shí)求2!,當(dāng)i為3時(shí)求3!……當(dāng)i為n時(shí)求n!。(6)將n的值和最終所求的fac……值輸出。(7)主要程序代碼如下:main(){inti=2,n;/*定義變量i,n為基本整型并為i賦初值2*/floatfac=1;/*定義fac為單精度型并賦初值1*/printf("pleaseinputaninterger>=0.\n");scanf("%d",&n);/*使用scanf函數(shù)獲取n的值*/if(n==0||n==1)/*當(dāng)n為0或1的時(shí)候輸出階層為1*/{printf("factorialis1.\n");return0;}while(i<=n)/*當(dāng)滿足輸入的數(shù)值大于等于i時(shí)執(zhí)行循環(huán)體語句*/{fac=fac*i;/*實(shí)現(xiàn)求階層的過程*/i++;/*變量i自加*/}printf("factorialof%dis:%.2f.\n",n,fac);/*輸出n和fac最終的值*/}舉一反三根據(jù)本實(shí)例,讀者可以:要求從鍵盤中輸入三角形的三邊判斷是否能組成三角形,若可以則輸出它的面積和三角形的類型。計(jì)算1-3+5-7+……-99+101的值。\h實(shí)例017特殊等式這是一個(gè)可以提高分析能力的實(shí)例實(shí)例位置:光盤\mingrisoft\01\017實(shí)例說明有這樣一個(gè)等式,xyz+yzz=532,編程求x、y、z的值(xyz和yzz分別表示一個(gè)三位數(shù))。運(yùn)行結(jié)果如圖1.17所示。圖1.17特殊等式技術(shù)要點(diǎn)本實(shí)例的算法思想是對x、y、z分別進(jìn)行窮舉,由于x和y均可做最高位,所以x和y不能為0,所以窮舉范圍為1~9,而z始終做個(gè)位,所以z的窮舉范圍為0~9。對其按照題中要求的等式求和,看和是否等于532,如果等于,則x、y、z就是所求結(jié)果,否則繼續(xù)尋找。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件:#include<stdio.h>(3)對x、y、z進(jìn)行窮舉,判斷xyz與yzz之和是否是532,是則將結(jié)果輸出,否則進(jìn)行下次判斷。(4)主函數(shù)程序代碼如下:main(){intx,y,z,i;for(x=1;x<10;x++)/*對x進(jìn)行窮舉*/for(y=1;y<10;y++)/*對y進(jìn)行窮舉*/for(z=0;z<10;z++)/*對z進(jìn)行窮舉,由于是個(gè)位所以可以為0*/{i=100*x+10*y+z+100*y+10*z+z;/*求和*/if(i==532)/*判斷和是否等于532*/printf("x=%d,y=%d,z=%d\n",x,y,z);/*輸入x、y、z最終的值*/}}舉一反三根據(jù)本實(shí)例,讀者可以:有這樣一個(gè)等式:xyz*yx=10248,編程求x、y、z可能的值。有這樣一個(gè)等式:xyz-zyx=297,編程求x、y、z可能的值。\h實(shí)例018求一個(gè)正整數(shù)的所有因子這是一個(gè)可以提高分析能力的實(shí)例實(shí)例位置:光盤\mingrisoft\01\018實(shí)例說明從鍵盤中輸入一個(gè)正整數(shù)求它的所有因子。運(yùn)行結(jié)果如圖1.18所示。圖1.18求一個(gè)整數(shù)的所有因子技術(shù)要點(diǎn)(1)本實(shí)例中用到for語句,這里要提到的仍然是for語句中變量i的取值范圍,因?yàn)閷?shí)例中要求所有因子,那么編程序的時(shí)候就應(yīng)考慮到從1到你要求的這個(gè)數(shù)的本身所有的數(shù)是否是這個(gè)數(shù)的因子,所以i的取值范圍從1到你所輸入的數(shù)n。在今后編程的過程中經(jīng)常要用到像for、while、do…while這種循環(huán)語句,在使用這些語句的時(shí)候很關(guān)鍵的一點(diǎn)就是如何確定其中變量的范圍,在這個(gè)時(shí)候就特別需要編程人員考慮問題要全面,另外多做些與此相關(guān)的練習(xí)也能幫助大家盡快地掌握這部分知識。(2)實(shí)例中要求因子換成比較能接受的話來說就是用一個(gè)數(shù)除以另一個(gè)數(shù),看是否能被整除(余數(shù)是否為零),如果能被整除(余數(shù)為0)則另一個(gè)數(shù)為一個(gè)數(shù)的因子,否則不是因子。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件:#include<stdio.h>(3)定義數(shù)據(jù)類型,本實(shí)例中i、j均為基本整型。(4)用scanf函數(shù)獲得要求的數(shù)。(5)當(dāng)for語句中的表達(dá)式滿足條件的時(shí)候執(zhí)行if語句,當(dāng)if語句中的表達(dá)式為真,則將j的值輸出,否則繼續(xù)下次循環(huán)。(6)主要程序代碼如下:main(){inti,j;/*定義變量i,j為基本整型*/printf("pleaseinput:\n");scanf("%d",&i);/*用scanf函數(shù)獲得i的值*/for(j=1;j<=i;j++)/*for語句中j的取值范圍從1到i*/if(i%j==0)/*如果i對j取余的結(jié)果為0說明j是i的因子*/printf("%d,",j);/*將每次求出的因子輸出*/}舉一反三根據(jù)本實(shí)例,讀者可以:隨機(jī)產(chǎn)生一個(gè)無重復(fù)的10個(gè)數(shù)的序列,找出其中因子有5的所有數(shù)。編程求100~1000之間有多少個(gè)數(shù)其個(gè)位數(shù)字之和是5。\h實(shí)例019一元錢兌換方案這是一個(gè)可以啟發(fā)思維的實(shí)例實(shí)例位置:光盤\mingrisoft\01\019實(shí)例說明如果要將整錢換成零錢,那么一元錢可兌換成一角、兩角或五角,問有多少種兌換方案。運(yùn)行結(jié)果如圖1.19所示。圖1.19一元錢兌換方案技術(shù)要點(diǎn)本實(shí)例中3次用到for語句,第一個(gè)for語句中變量i的范圍為1~10,這是如何確定的呢?根據(jù)題意知道可將一元錢兌換成一角錢,那么我們就得考慮如果將一元錢全部兌換成一角錢將能兌換多少個(gè)?答案顯而易見是10,當(dāng)然一元錢也可以兌換兩角或五角而不兌換成一角,所以i的取值范圍為0~10,同理可知j(兩角)的取值范圍為0~5,k(五角)的取值范圍為0~2。實(shí)現(xiàn)過程(1)在TC中創(chuàng)建一個(gè)C文件。(2)引用頭文件:#include<stdio.h>(3)定義數(shù)據(jù)類型,本實(shí)例中i、j、k均為基本整型。(4)嵌套的for循環(huán)的使用將所有在取值范圍內(nèi)的數(shù)全部組合一次,凡是能使if語句中的表達(dá)式為真的則將其輸出。(5)主要程序代碼如下:main(){inti,j,k;/*定義i,j,k為基本整型*/for(i=0;i<=10;i++)/*i是一角錢兌換個(gè)數(shù),所以范圍從1到10*/for(j=0;j<=5;j++)/*j是兩角錢兌換個(gè)數(shù),所以范圍從0到5*/for(k=0;k<=2;k++)/*k是五角錢兌換個(gè)數(shù),所以范圍從0到2*/if(i+j*2+k*5==10)/*三種錢數(shù)相加是否等于十*/printf("yijiao%d,liangjiao%d,wujiao%d\n",i,j,k);/*將每次可兌換的方案輸出*/}舉一反三根據(jù)本實(shí)例,讀者可以:輸出0~9組成的所有無重復(fù)的三位數(shù)。從鍵盤中輸入一個(gè)不多于5位的正整數(shù),求它是幾位數(shù)然后逆序打印出各位數(shù)字顯示在屏幕

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論