




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
循環(huán)結構應用【例1】用π4≈1-13+15-17+?公式求π的近似值,程序分析:多項式的各項的規(guī)律:①每項的分子都是1。②后一項的分母是前一項的分母加2。③第一項的符號為正,從第二項起,每一項的符號與前一項的符號相反。找到這些規(guī)律后,就可以用循環(huán)來處理了。例如,前一項的值是1n,則可以推出下一項為-可以看出,4分之π的值是由求一個多項式的值來得到的。這個多項式從理論上說包含無窮項,包含的項數(shù)越多,近似程度就越高。但是在實際運算時不可能計算到無窮項,現(xiàn)在題目已明確,當多項式中的某一項的絕對值小于10的-6次方時,就認為足夠近似了,可以據(jù)此計算出π的近似值了。程序如下:#include<stdio.h>#include<math.h> //程序中用到數(shù)學函數(shù)fabs,應包含頭文件math.hmain(){intsign=1; //sign用來表示數(shù)值的符號doublepi=0.0,n=1.0,term=1.0; //pi開始表示多項式的值,最后代表π的值,//n代表分母,term代表當前項的值while(fabs(term)>=1e-6) //檢查當前項term的絕對值是否>或=10的-6次方{pi=pi+term; //把當前項term累加到pi中n=n+2; //n+2是下一項的分母sign=-sign; //sign代表符號,后一項的符號與前一項符號相反term=sign/n; //求出下一項的值term}pi=pi*4; //多項式的和pi×4,才是π的近似值printf(“pi=%10.8f\n”,pi); //輸出π的近似值}運行結果:雖然輸出了8位小數(shù),但是只有前5位小數(shù)3.14159是準確的,因為第7位已小于10的-6次方,后面的項沒有累加。【例2】計算用戶多次輸入的若干個數(shù)的平均值,去掉一個最大數(shù)和一個最小數(shù)后再求平均值。程序分析:要讓用戶反復執(zhí)行輸入操作時,可以利用scanf函數(shù)進行判斷,如果用戶沒有按照scanf規(guī)定的輸入模式輸入數(shù)據(jù),例如要求輸入數(shù)字,結果輸入的是字符,則該函數(shù)將會返回數(shù)字0,表示失敗。如果格式正確,輸入成功,該函數(shù)將返回數(shù)字1。因此在編寫循環(huán)時,用返回值m!=0,即輸入成功作為循環(huán)條件來進行判斷。程序如下:main(){doublesum=0,aver=1; //sum、aver分別用來存放數(shù)的和、平均值doublex=0,max,min; //x,max,min分別用來存放輸入的數(shù)、最大值、最小值intcount=0; //count表示輸入數(shù)字的個數(shù)intm=1; //m表示輸入成功與否的標志printf(“輸入數(shù)字,回車確認(輸入no結束輸入過程):\n”);m=scanf(“%lf”,&x); //輸入數(shù)字送到x中,輸入成功m=1,否則m=0max=min=x;while(m!=0) //當輸入成功時,執(zhí)行循環(huán)體{count++; //輸入數(shù)的個數(shù)加1sum=sum+x; //輸入的數(shù)累加求和printf(“輸入下一個數(shù)據(jù),回車確認(輸入no結束輸入過程):\n”);m=scanf(“%lf”,&x);if(x>max)max=x;if(x<min)min=x;}aver=sum/count; //求平均值printf(“所有輸入數(shù)的平均值是:%f\n”,aver);if(count>=3) //如果輸入數(shù)的個數(shù)大于等于3個{printf(“去掉一個最大數(shù)%f、一個最小數(shù)%f\n”,max,min);aver=(sum-max-min)/(count-2); //求平均值printf(“平均值是:%f\n”,aver);}}運行結果:【例3】程序隨機給出一個1~100之間的數(shù),讓用戶猜這個數(shù)。程序分析:當用戶給出的猜測不等于程序給出的數(shù)時,程序會提示用戶“猜大了”,或“猜小了”,并要求用戶繼續(xù)猜測;只有猜當用戶的猜測等于程序給出的數(shù)時,程序提示用戶“猜對了”,并不再要求用戶繼續(xù)猜測。其次,怎樣獲得一個隨機數(shù)呢?首先要確定隨機數(shù)種子,然后才能模擬得到一個隨機數(shù)。在C語言里可以使用srand()函數(shù)(在stdlib.h庫中),并將當前機器的時間設置為隨機數(shù)種子(time函數(shù)在time.h庫中):srand(time(NULL));然后調用rand()函數(shù)(在stdlib.h庫中)得到一個大于0的隨機數(shù),例如,為了得到1~100之間的隨機數(shù)number,可以進行如下操作:number=rand()%100+1;程序如下:#include<stdio.h>#include<time.h> //程序中用到time函數(shù)#include<stdlib.h> //程序中用到srand函數(shù)和rand函數(shù)main(){intnumber,guess; //number,guess分別表示隨機數(shù)、用戶猜測數(shù)intcount=0; //記錄用戶猜測的次數(shù)srand(time(NULL)); //用當前時間做隨機數(shù)種子printf(“給你一個1~100之間的數(shù)字,請猜測:\n”);number=rand()%100+1; //得到1~100之間的隨機數(shù)do{scanf(“%d”,&guess);count++; //輸入次數(shù)加1if(guess>number) //如果輸入的數(shù)大于隨機數(shù)printf(“第%d次猜測,猜大了,請再猜:\n”,count);elseif(guess<number) //如果
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 音樂課件教學
- 城市污水管網(wǎng)建設項目招投標方案(參考范文)
- 2025年差容式力平衡傳感器項目建議書
- 水肌酸產(chǎn)品項目建議書(范文模板)
- 2025年核輻射劑量防護儀器設備項目發(fā)展計劃
- 2025年丙二酮項目建議書
- 2025年特殊功能復合材料及制品項目合作計劃書
- 五年級上冊語文少年中國說-教案
- 五年級語文《狼牙山五壯士》教案
- 2025年寵物電商合作協(xié)議書
- 臨床、口腔醫(yī)師申報衛(wèi)生高級職稱工作量登記表
- GB/T 10045-2018非合金鋼及細晶粒鋼藥芯焊絲
- GB 7099-2015食品安全國家標準糕點、面包
- 2023年納雍縣財政局系統(tǒng)事業(yè)單位招聘筆試題庫及答案解析
- 2023年廣東省普通高中學業(yè)水平考試及參考答案
- 建筑工程模板施工工藝技術要點講義豐富課件
- 永能選煤廠生產(chǎn)安全事故應急救援預案
- 浙江省建設領域簡易勞動合同(A4版本)
- 位置度公差以及其計算
- 氯化銨危險化學品安全周知卡
- 浙江省本級公務車輛租賃服務驗收單(格式)
評論
0/150
提交評論