版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、華 中 科 技 大 學(xué)計(jì)算機(jī)基礎(chǔ)與程序設(shè)計(jì)(C+)實(shí) 驗(yàn) 報(bào) 告實(shí)驗(yàn)名稱:第三次上機(jī)實(shí)驗(yàn) 實(shí)驗(yàn)學(xué)時(shí):4姓名: 學(xué)號(hào): 班級(jí):電氣實(shí)驗(yàn)日期:2017/3/27 教師批閱簽字:一、實(shí)驗(yàn)?zāi)康膌 掌握三種循環(huán)語(yǔ)句的使用。l 學(xué)會(huì)使用continue 和break。l 掌握多重循環(huán)的設(shè)計(jì)。l 掌握常用算法的應(yīng)用。二、 實(shí)驗(yàn)內(nèi)容1在vc環(huán)境下編寫下述程序代碼,編譯調(diào)試然后用不同的數(shù)據(jù)測(cè)試直至得到完全正確的結(jié)果。 并解釋出錯(cuò)原因。#include#includeusing namespace std;int main( ) float x0,x1,a; couta; if(a0) couta不能開平方!=1
2、e-5) x0=x1; x1=(x0+a/x0)/2; cout a的平方根為:x1endl; return 0;語(yǔ)法錯(cuò)誤:1.最后缺少花括號(hào)。邏輯錯(cuò)誤:1.else后面有分號(hào),導(dǎo)致花括號(hào)中的語(yǔ)句不受else限制。2.abs所提供的精度為整數(shù)更改后的程序:#include#includeusing namespace std;int main( ) float x0,x1,a; couta; if(a0) couta不能開平方!=1e-5) x0=x1; x1=(x0+a/x0)/2; cout a的平方根為:x1endl; return 0;2 下列程序的功能是:計(jì)算一對(duì)兔子,從出生后第3個(gè)
3、月起每個(gè)月都生一對(duì)兔子。小兔子長(zhǎng)到第3個(gè)月后每個(gè)月又生一對(duì)兔子,假設(shè)兔子不存在死亡問題,請(qǐng)問從第1個(gè)月到第20個(gè)月,每個(gè)月有多少對(duì)兔子?要求輸出時(shí)按行列方式每行顯示5個(gè)數(shù)據(jù)。如下圖:編譯調(diào)試該程序看是否正確,不正確的話修改之直至完全滿足要求。并解釋出錯(cuò)原因。int main() int fib0=0,fib1=1,fib2;int n; coutsetw(5)fib0fib1endl;for(n=1;n=20;n+) fib2=fib0+fib1;coutsetw(5)fib2; fib1=fib2; fib0=fib1; if(n%5=0) coutendl; return 0;語(yǔ)法錯(cuò)誤:1
4、.缺少頭文件(iostream以及iomanip)以及命名空間。2.return 0后的分號(hào)為中文分號(hào)。邏輯錯(cuò)誤:1. coutsetw(5)fib1;最初只需要輸出一個(gè)月而且無需換行2.前面已經(jīng)輸出一個(gè)月 所以n=19。而且后面的換行也需要改為n+13.復(fù)制順序錯(cuò)誤,應(yīng)該為fib0=fib1; fib1=fib2;改正后的程序:#include #include using namespace std;int main() int fib0=0,fib1=1,fib2;int n; coutsetw(5)fib1;for(n=1;n=19;n+) fib2=fib0+fib1;coutset
5、w(5)fib2;fib0=fib1;fib1=fib2; if(n+1)%5=0) coutendl; return 0;3 編程任意輸入一個(gè)三位數(shù),判斷其是否是水仙花數(shù)(水仙花數(shù)是指這個(gè)數(shù)等于個(gè)位,十位和百位的立方和。 例如:153=13+53+33)要求:程序原代碼,及運(yùn)行結(jié)果截圖。(直接粘貼在此)#include using namespace std;int main()cout請(qǐng)輸入需要判斷的正整數(shù)a;g=a%10;s=(a/10)%10;b=a/100;if (a=g*g*g+s*s*s+b*b*b)cout該整數(shù)為水仙花數(shù)endl;elsecout該整數(shù)不是水仙花數(shù)endl;r
6、eturn 0;解決本題的算法思路描述。首先要解決的是如何取得個(gè)十百三位的數(shù)字,然后用if語(yǔ)句進(jìn)行判斷。調(diào)試過程的記載(包括出現(xiàn)的錯(cuò)誤,以及修改過程)對(duì)十位和百位的數(shù)字進(jìn)行提取的時(shí)候出現(xiàn)錯(cuò)誤。開始時(shí):g=a%10;改正后:g=a%10; s=a%100; s=(a/10)%10;b=a%1000; b=a/100;4 輸出3到100以內(nèi)的所有素?cái)?shù)。(要求每行顯示8個(gè)數(shù)) % 提示:該題需要用到多重循環(huán),外循環(huán)代表需要判斷的數(shù),從3到100,內(nèi)循環(huán)判斷該數(shù)是否是素?cái)?shù),參考教材的例4.9(判斷一個(gè)數(shù)是否為素?cái)?shù))。要求:程序原代碼,及運(yùn)行結(jié)果截圖。(直接粘貼在此)#include #include
7、using namespace std;int main()int i,n,m=0,s=0,a;for (i=3;i=100;i+)a=1;for (n=2;ni;n+)if (i%n=0)a=0;break;if (a=1)coutsetw(3)i; m=m+1; if (m%8=0)coutendl; else ;return 0;解決本題的算法思路描述運(yùn)用雙重循環(huán)語(yǔ)句進(jìn)行,一個(gè)用來判斷是否為素?cái)?shù),另外一個(gè)用來循環(huán)3-100.調(diào)試過程的記載(包括出現(xiàn)的錯(cuò)誤,以及修改過程)a需要每次循環(huán)都賦值,最初放在循環(huán)外,導(dǎo)致只能輸出3一個(gè)數(shù)字?;ɡㄌ?hào)位置錯(cuò)誤,導(dǎo)致格式不正確。5 連續(xù)輸入n 個(gè)整數(shù)(n
8、由鍵盤輸入)統(tǒng)計(jì)其中正數(shù)、負(fù)數(shù)和零的個(gè)數(shù)。 要求:程序原代碼,及運(yùn)行結(jié)果截圖。(直接粘貼在此)#include using namespace std;int main()cout請(qǐng)輸入所需統(tǒng)計(jì)的數(shù)字的個(gè)數(shù)n;cout請(qǐng)輸入所需統(tǒng)計(jì)的數(shù)據(jù)endl;for (;ia;if (a=0)l+;else if (a0)z+;elsef+;cout統(tǒng)計(jì)的數(shù)據(jù)中正數(shù)、負(fù)數(shù)以及0的個(gè)數(shù)分別z,f,lendl;return 0;解決本題的算法思路描述首先判斷輸入數(shù)據(jù)的個(gè)數(shù),然后運(yùn)用for循環(huán)和if-else語(yǔ)句進(jìn)行統(tǒng)計(jì)出現(xiàn)次數(shù)。調(diào)試過程的記載(包括出現(xiàn)的錯(cuò)誤,以及修改過程)未出現(xiàn)錯(cuò)誤,但是最開始的程序未進(jìn)行相
9、關(guān)提示。6 改寫教材115 例18 ,規(guī)則為5局3勝制規(guī)則,其余條件不變。要求:程序原代碼,及運(yùn)行結(jié)果截圖。(直接粘貼在此)#include #include using namespace std;int main()int v1=0,v2=0,i,p1,p2;while (v13&v23)cout請(qǐng)輸入兩個(gè)小孩的劃拳值,1代表石頭,2代表剪刀,3代表布。p1p2;switch (p1)case 1:cout石頭;break;case 2:cout剪刀;break;case 3:cout布;break;coutt;switch (p2)case 1:cout石頭;break;case 2:c
10、out剪刀;break;case 3:cout布;break;coutn;if(p1=p2)continue;if(p1=1&p2=2|p1=2&p2=3|p1=3&p2=1)v1+;elsev2+;if (v1=3)cout小孩1獲勝endl;elsecout小孩2獲勝endl;return 0;解決本題的算法思路描述通過修改while的循環(huán)條件即可實(shí)現(xiàn)五局三勝制只需要統(tǒng)計(jì)兩個(gè)孩子的勝利次數(shù),誰(shuí)先到達(dá)三次即獲勝調(diào)試過程的記載(包括出現(xiàn)的錯(cuò)誤,以及修改過程) 由于為書中例題,只需簡(jiǎn)單修改即可完成,故未出現(xiàn)錯(cuò)誤7 改寫教材龜兔賽跑程序,要求在指定距離的條件下比賽,其余規(guī)則不變。要求:程序原代碼,
11、及運(yùn)行結(jié)果截圖。(直接粘貼在此)#includeusing namespace std;int main() int s,sw=0,st=0,station=0,sleep=0,run=0;couts;while(sws&stsw)station=1;else ;else;elsesleep+;sw+=3;if(sleep=30)station=0;sleep=0;else;if(swst)cout烏龜勝endl;else if(swst)cout兔子勝endl; elsecout平局endl;return 0;解決本題的算法思路描述1.以時(shí)間為循環(huán)的控制條件,計(jì)算兩者走相同路程時(shí)誰(shuí)的時(shí)間少,
12、運(yùn)用累計(jì)時(shí)間的算法,有一者到達(dá)指定路程就停止計(jì)時(shí),然后比較兩者的路程。2.對(duì)烏龜和兔子的行程進(jìn)行累計(jì),通過速度和時(shí)間來完成。3.判斷兔子是否在進(jìn)行休息,用station來表示,0為運(yùn)動(dòng)1為睡覺。4.累計(jì)睡覺的時(shí)間,每到十分鐘要重新從0開始計(jì)算。調(diào)試過程的記載(包括出現(xiàn)的錯(cuò)誤,以及修改過程) 賦值符號(hào)與判斷相等的符號(hào)混淆。8 小王拿了50元錢準(zhǔn)備去菜場(chǎng)買菜,已知黃瓜3元1斤,韭菜5元1斤,西紅柿4元1斤,如何買這3樣菜(每種菜都必須買),并且將50元花完,列出所有可能的買法。(只考慮整斤)要求:程序原代碼,及運(yùn)行結(jié)果截圖。(直接粘貼在此)#include using namespace std;
13、int main()int h,j,x,z;for (h=1;h17;h+)for (j=1;j=10;j+)for(x=1;x13;x+)if (3*h+5*j+4*x=50)cout黃瓜,韭菜,西紅柿的數(shù)量分別為h,j,x斤。endl;return 0;解決本題的算法思路描述利用多重循環(huán),使用窮舉法得出結(jié)果。調(diào)試過程的記載(包括出現(xiàn)的錯(cuò)誤,以及修改過程)For 語(yǔ)句中;錯(cuò)寫為,循環(huán)語(yǔ)句出錯(cuò),更改了循環(huán)語(yǔ)句。9 編程將一個(gè)10進(jìn)制整數(shù)轉(zhuǎn)換成2進(jìn)制整數(shù)。要求:程序原代碼,及運(yùn)行結(jié)果截圖。(直接粘貼在此)#include using namespace std;void main()int s,
14、i=0,j,a,b100;cout請(qǐng)輸入需要轉(zhuǎn)化的十進(jìn)制整數(shù)s;while (s!=0)a=s/2;bi=s%2;s=a;i+;for (j=i-1;j=0;j-)coutbj;coutendl;解決本題的算法思路描述十進(jìn)制轉(zhuǎn)為二進(jìn)制的各個(gè)位數(shù)的數(shù)字用對(duì)2取余獲得然后用數(shù)組儲(chǔ)存數(shù)字最后倒序輸出調(diào)試過程的記載(包括出現(xiàn)的錯(cuò)誤,以及修改過程)For語(yǔ)句中的j開始時(shí)定義錯(cuò)數(shù)值,應(yīng)為i-1忘記減110 編程將一個(gè)10進(jìn)制定點(diǎn)小數(shù)轉(zhuǎn)換成2進(jìn)制定點(diǎn)小數(shù)。要求:程序原代碼,及運(yùn)行結(jié)果截圖。(直接粘貼在此)#include #include using namespace std;double main()i
15、nt m=0; double s,a;cout請(qǐng)輸入需要轉(zhuǎn)化的十進(jìn)制定點(diǎn)小數(shù)s;cout結(jié)果為0.;while (m=1)s=a-1;elses=a;m+;coutfloor(a);if (s=0)break;coutendl;解決本題的算法思路描述小數(shù)點(diǎn)后的每一位數(shù)字用乘2循環(huán)求得,乘2后的小數(shù)用floor取整調(diào)試過程的記載(包括出現(xiàn)的錯(cuò)誤,以及修改過程)輸入數(shù)據(jù)的類型出錯(cuò)。由int改為double11 編程要求從文件in.txt 中連續(xù)讀入n個(gè)數(shù)(n由鍵盤輸入),統(tǒng)計(jì)其中正數(shù)、負(fù)數(shù)和零的個(gè)數(shù)。(in.txt 是事先建好的一個(gè)文件存有若干數(shù)據(jù),當(dāng)輸入的n值大于in.txt文件中的數(shù)據(jù)個(gè)數(shù)時(shí)給
16、出相應(yīng)的提示,判斷文件中的數(shù)據(jù)是否讀完使用eof() 函數(shù)。eof() 函數(shù)是判斷是否到文件結(jié)尾,如果到文件結(jié)尾函數(shù)返回1,否則返回0,具體參考教材115頁(yè)例4.17 )要求:程序原代碼,及運(yùn)行結(jié)果截圖。(直接粘貼在此)#include #include using namespace std;int main()double x;int z=0,f=0,l=0,n,i=1,m;cout請(qǐng)輸入所需統(tǒng)計(jì)的數(shù)字的個(gè)數(shù)n;ifstream in;in.open(d:in.txt);while (ix;i+;if (x=0)l+;else if (x0)z+;elsef+; m=l+z+f;if (n
17、m)cout數(shù)據(jù)數(shù)量小于所要統(tǒng)計(jì)的數(shù)量endl; cout統(tǒng)計(jì)的正數(shù)、負(fù)數(shù)和零數(shù)量分別為z,f,lendl;in.close();return 0;解決本題的算法思路描述運(yùn)用讀取文件的語(yǔ)句,用if語(yǔ)句累計(jì)三種數(shù)據(jù)的個(gè)數(shù)。調(diào)試過程的記載(包括出現(xiàn)的錯(cuò)誤,以及修改過程)逗號(hào)用的中文 用了標(biāo)志 出現(xiàn)錯(cuò)誤。更改為英文的逗號(hào)正常了。12 (選做)一位商人有一個(gè)40磅的砝碼,由于跌落在地而碎成4塊,后來稱得每塊碎片的重量都是整數(shù),而且可以用這4塊來稱從1到40磅之間的任意整數(shù)磅的重物,問這4塊砝碼碎片各重多少?% 提示:此題需要兩次用到窮舉法,第一次窮舉是4個(gè)砝碼的重量,分別用四個(gè)循環(huán)變量i, j, k,
18、 l來表示。第二次窮舉是當(dāng)i+j+k+l=40時(shí),對(duì)重1磅到40磅共40種物品使用i, j, k, l四個(gè)稱進(jìn)行組合,設(shè)置一個(gè)計(jì)數(shù)器,組合出1個(gè)計(jì)數(shù)器加1,如果能組合出40個(gè),就是我們要找的答案。要求:程序原代碼,及運(yùn)行結(jié)果截圖。(直接粘貼在此)#include using namespace std;int main() int i,j,k,l,d1,d2,d3,d4,x,flag,s=0; cout砝碼分為; for(i = 1;i 41;i+) for(j = i;j 41;j+) for(k = j;k =k) s=0; for(x=1;x-2&flag=0;d1-) for(d2=1;d2-2&flag=0;d2-) for(d3=1;d3-2&flag=0;d3-) for(d4=1;d4-2&flag=0;d4-) if(x = i*d1+j*d2+k*d3+l*d4) flag = 1; s+; if(s=40) couti,j,k,l四塊endl; return 0; 解決本題的算法思路描述首先找出所有組合,然后進(jìn)行篩選。調(diào)試過程的記載(包括出現(xiàn)的錯(cuò)誤,以及修改過程)最終的輸出語(yǔ)句所在位置一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度建筑工地臨時(shí)用工人員工資支付與爭(zhēng)議調(diào)解協(xié)議3篇
- 應(yīng)急管理概論 教學(xué)大綱
- 企業(yè)流程管理培訓(xùn)
- 二零二五年度廣告銷售渠道拓展合同范本3篇
- ChatGPT助推學(xué)校教育數(shù)字化轉(zhuǎn)型-人工智能時(shí)代學(xué)什么與怎么教
- 航空母艦發(fā)展史
- 炒菜放料知識(shí)培訓(xùn)課件
- 山西省朔州市懷仁市2024-2025學(xué)年七年級(jí)上學(xué)期1月期末生物試題(無答案)
- Unit6 Shopping A let's spell (說課稿)-2023-2024學(xué)年人教PEP版英語(yǔ)四年級(jí)下冊(cè)
- 第16章 分式 評(píng)估測(cè)試卷(含答案)2024-2025學(xué)年數(shù)學(xué)華東師大版八年級(jí)下冊(cè)
- 春聯(lián)課件教學(xué)課件
- 北師大版五年級(jí)上冊(cè)脫式計(jì)算400道及答案
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 地理試題
- 8《美麗文字 民族瑰寶》教學(xué)設(shè)計(jì)2023-2024學(xué)年統(tǒng)編版道德與法治五年級(jí)上冊(cè)
- 2024年工業(yè)廢水處理工(初級(jí))技能鑒定考試題庫(kù)(含答案)
- 2024新滬教版英語(yǔ)初一上單詞表(英譯漢)
- NB/T 11446-2023煤礦連采連充技術(shù)要求
- 人教版八年級(jí)上冊(cè)生物期末必刷15道識(shí)圖題
- SY-T 6966-2023 輸油氣管道工程安全儀表系統(tǒng)設(shè)計(jì)規(guī)范
- 學(xué)生公寓管理員培訓(xùn)
- 固體廢棄物循環(huán)利用項(xiàng)目風(fēng)險(xiǎn)管理方案
評(píng)論
0/150
提交評(píng)論