版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本文格式為word版,下載可任意編輯一元數(shù)組運(yùn)算器實(shí)驗(yàn)報(bào)告 數(shù)組運(yùn)算器試驗(yàn)報(bào)告 試驗(yàn)?zāi)康?實(shí)現(xiàn)一個(gè)數(shù)組運(yùn)算器 試驗(yàn)要求 一維數(shù)組的定義和使用 循環(huán)結(jié)構(gòu)和分支結(jié)構(gòu) 函數(shù)的定義和調(diào)用 數(shù)據(jù)處理技術(shù)(排序、插入、刪除、查找、統(tǒng)計(jì)、逆置、左旋、右旋) 數(shù)組作為實(shí)現(xiàn)算法的幫助工具(篩選法求素?cái)?shù)、約瑟夫環(huán)) 試驗(yàn)思路 1. 定義一維數(shù)組 首先配置數(shù)組大小,再填充數(shù)據(jù)。 時(shí)間簡(jiǎn)單度:o(n) 2. 顯示一維數(shù)組 輸出數(shù)組每一個(gè)元素。 時(shí)間簡(jiǎn)單度:o(n) 3. 數(shù)據(jù)處理 調(diào)用排序函數(shù)、插入函數(shù)、刪除函數(shù)、查找函數(shù)、統(tǒng)計(jì)函數(shù)、逆置函數(shù)、 左旋函數(shù)、右旋函數(shù)對(duì)數(shù)據(jù)進(jìn)行操作。 時(shí)間簡(jiǎn)單度:o(n) 4. 數(shù)組幫助
2、工具 調(diào)用篩選法求素?cái)?shù)函數(shù)、約瑟夫環(huán)函數(shù)實(shí)現(xiàn)算法。 時(shí)間簡(jiǎn)單度:o(n) 函數(shù)清單 void p() /主菜單 void p1() /配置數(shù)組大小 void p2() /生成樣本數(shù)據(jù)菜單 void p21() /隨機(jī)數(shù)填充數(shù)據(jù) void p22() /鍵入填充數(shù)據(jù) void p23() /填充同一數(shù)據(jù) void p24() /填充等差序列數(shù)據(jù) void p3() /顯示數(shù)組 void p4() /刪除菜單 void p41(int k) /刪除指定下標(biāo)的元素 void p42(int k) /刪除指定值的元素 調(diào)用 p41 void p43() /刪除按指定下標(biāo)區(qū)間的一組元素 void p5(
3、) /插入菜單 void p51() /按指定下標(biāo)位置插入新元素 void p52sx() /在升序數(shù)組中插入新元素 void p52jx() /在降序數(shù)組中插入新元素 void p6() /統(tǒng)計(jì)菜單 void p61() /求最大值 void p62() /求最小值 void p63() /求平均值 void p64() /求方差和均方差 void p7() /查找菜單 void p71(int k) /一般查找 void p72(int k) /二分查找(首先保證有序) void p8() /推斷菜單 void p81() /是否升序排列 void p82() /是否降序排列 void p
4、83() /是否全部相等 void p9() /排列菜單 void p91() /排序菜單 void p911() /冒泡法(降序) void p912() /選擇法(升序) void p913() /交換法(降序) void p92(int a,int a,int b) /逆置數(shù)組 void p93(int a,int top,int k) /左旋數(shù)組 調(diào)用 p92 void p94(int a,int top,int k) /右旋數(shù)組 調(diào)用 p93 void p10() /其他菜單 void p101() /約瑟夫環(huán) void p102() /篩選法求素?cái)?shù) 測(cè)試數(shù)據(jù) 詳細(xì)效果由測(cè)試者體驗(yàn),
5、例如下圖: 調(diào)試分析 調(diào)試時(shí)編寫一個(gè)函數(shù)對(duì)其 debug,減輕了后期調(diào)試壓力。 試驗(yàn)心得 對(duì)一維數(shù)組的應(yīng)用更加?jì)故?;能加快編程速度和效率;能編寫和調(diào)試更長(zhǎng)的程序。 源程序清單 #includestdlib.h #includestdio.h #includemath.h #includetime.h int a10000,top,i; #define for for(i=0;itop;i+) void p() printf(-*主菜單*-n); printf(0、退出n); printf(1、配置系統(tǒng)參數(shù)n); printf(2、生成樣本數(shù)據(jù)n); printf(3、顯示數(shù)組n); print
6、f(4、刪除n); printf(5、插入n); printf(6、統(tǒng)計(jì)n); printf(7、查找n); printf(8、推斷n); printf(9、排列數(shù)組元素n); printf(10、數(shù)組的其他應(yīng)用n); printf(請(qǐng)選擇 0-10:); void p1() /配置系統(tǒng)參數(shù) printf(請(qǐng)輸入數(shù)組大?。?; scanf(%d,top); void p2() /生成樣本數(shù)據(jù) printf(n1)用指定范圍的隨機(jī)數(shù)填充數(shù)組n); printf(2)鍵盤輸入n); printf(3)整個(gè)數(shù)組填同一個(gè)值n); printf(4)用等差序列填充數(shù)組(輸入首項(xiàng)和公差)n); print
7、f(請(qǐng)選擇 1-4:); void p21() int a,b; printf(請(qǐng)輸入隨機(jī)數(shù)的下限和上限:); scanf(%d%d,a,b); srand(unsigned int)time(null); for ai=rand()%(b-a)+a; void p22() printf(請(qǐng)輸入%d 個(gè)數(shù)填充數(shù)組:,top); for scanf(%d,ai); void p23() int k; printf(請(qǐng)輸入想填充的數(shù)據(jù):); scanf(%d,k); for ai=k; void p24() int a,d; printf(請(qǐng)輸入首項(xiàng)和公差:); scanf(%d%d,a,d);
8、a0=a; for(i=1;itop;i+) ai=ai-1+d; void p3() / 顯示數(shù)組 for printf(%-6d,ai); printf(n); void p4() / 刪除 printf(n1)刪除指定下標(biāo)的元素n); printf(2)刪除指定值的元素n); printf(3)刪除按指定下標(biāo)區(qū)間的一組元素n); printf(請(qǐng)選擇 1-3:); void p41(int k) for(i=k;itop;i+) ai=ai+1; void p42(int k) for if(ai=k) p41(i); void p43(int a,int b) for(i=a;ib+1
9、;i+) ai=ai+b-a+1; void p5() / 插入 printf(n1)按指定下標(biāo)位置插入新元素n); printf(2)在有序數(shù)組中插入新元素n); printf(請(qǐng)選擇 1-2:); void p51() int j,k; printf(請(qǐng)輸入插入位置下標(biāo)和插入值:); scanf(%d%d,j,k); top+; for(i=top-1;ij;i-) ai=ai-1; aj=k; void p52sx() int k,j; printf(請(qǐng)輸入插入值:); scanf(%d,k); if(ka0) top+; for(i=top-1;i0;i-) ai=ai-1; a0=k
10、; else if(katop-1) top+; atop-1=k; else for if(ai=k)(ai+1k) top+; for(j=top-1;ji+1;j-) aj=aj-1; ai+1=k; void p52jx() int k,j; printf(請(qǐng)輸入一個(gè)數(shù),代表要插入的數(shù):); scanf(%d,k); if(ka0) top+; for(i=top-1;i0;i-) ai=ai-1; a0=k; else if(katop-1) top+; atop-1=k; else for if(ai=k)(ai+1k) top+; for(j=top-1;ji+1;j-) aj=
11、aj-1; ai+1=k; void p6() /統(tǒng)計(jì) printf(n1)求最大值n); printf(2)求最小值n); printf(3)求平均值n); printf(4)求方差和均方差n); printf(請(qǐng)選擇 1-4:); void p61() int k=0; for if(aiak) k=i; printf(最大值=%dn,ak); void p62() int k=0; for if(aiak) k=i; printf(最小值=%dn,ak); void p63() double s=0; for s+=ai; printf(平均值=%lfn,s/top); void p64
12、() double v,f,t,s1=0,s2=0; for s1+=ai;s2+=ai*ai; v=s1/top; f=s2/top-v*v; t=sqrt(f); printf(方差=%lfn 均方差=%lfn,f,t); void p7() /查找 printf(n1)一般查找n); printf(2)二分查找(首先保證有序)n); printf(請(qǐng)選擇 1-2:); void p71(int k) int flag=0; for if(ai=k) flag=1; if(flag=1) for if(ai=k) printf(找到元素%d,下標(biāo)為%d ,即a%d=%dn ,k,i,i,k
13、); else printf(未找到元素%dn,k); void p72(int k) int l=0,h=top-1,m; while(l=h) m=(l+h)/2; if(kam) l=m+1; else if(kam) h=m-1; else break; if(l=h) printf(找到此元素,下標(biāo)為 %d,即 a%d=%d n,m,m,k); else printf(未找到此元素n); void p8() /推斷 printf(n1)是否升序排列n); printf(2)是否降序排列n); printf(3)是否全部相等n); printf(請(qǐng)選擇 1-3:); void p81(
14、) int flag=0; for(i=1;itop;i+) if(aiai-1) flag=1; if(flag=0) printf(是n); else printf(否n); void p82() int flag=0; for(i=1;itop;i+) if(aiai-1) flag=1; if(flag=0) printf(是n); else printf(否n); void p83() int flag=0; for(i=1;itop;i+) if(ai!=ai-1) flag=1; if(flag=0) printf(是n); else printf(否n); void p9()
15、/排列數(shù)組元素 printf(n1)排序n); printf(2)逆置數(shù)組n); printf(3)左旋數(shù)組n); printf(4)右旋數(shù)組n); printf(請(qǐng)選擇 1-4:); void p91() printf(n1. 冒泡法(降序) 2. 選擇法(升序) 3. 交 換 法 ( 降序)n); printf(請(qǐng)選擇 1-3:); void p911() int j,t; for(i=0;itop-1;i+) for(j=0;jtop-i-1;j+) if(ajaj+1) t=aj; aj=aj+1; aj+1=t; void p912() int j,k,t; for(i=0;itop
16、-1;i+) k=i; for(j=i+1;jtop;j+) if(akaj) k=j; if(k!=i) t=ak; ak=ai; ai=t; void p913() int t,j; for(i=0;itop-1;i+) for(j=i+1;jtop;j+) if(aiaj) t=ai; ai=aj; aj=t; void p92(int a,int a,int b) int t,j; for(i=a,j=b;ij;i+,j-) t=ai; ai=aj; aj=t; void p93(int a,int top,int k) p92(a,0,k-1); p92(a,k,top-1); p9
17、2(a,0,top-1); void p94(int a,int top,int k) p93(a,top,top-k); void p10() printf(n1)約瑟夫環(huán)n); printf(2)篩選法求素?cái)?shù)n); printf(請(qǐng)選擇 1-2:); void p101() int n,m,k,pos,man10000; for(i=0;in+1;i+) mani=0; i=k=0; printf(總?cè)藬?shù)和報(bào)數(shù)間隔:n); scanf(%d%d,n,m); for(pos=0;kn;pos=(pos+1)%n) if(manpos=0) i+; if(i=m) i=0; k+; manpo
18、s=k; printf(約瑟夫環(huán):n); for(pos=0;posn;pos+) printf(%-6d%c,manpos,(pos+1)%10=0)?"n":" "); printf(n); void p102() int j,n;char line10000; printf(求 1-指定數(shù)之間的素?cái)?shù)n); printf(輸入一個(gè)數(shù):); scanf(%d,n); for(i=0;i=n;i+) linei=1; for(i=2;i=n;i+) if(linei) printf(%-6d,i); for(j=i+1;j=n;j+) if(j%i=0)
19、 linej=0; printf(n); main() int zhu,fu,k,a,b; while(1) p(); scanf(%d,zhu); if(zhu=0) return 0; if(zhu=1) p1(); if(zhu=2) p2(); scanf(%d,fu); switch(fu) case 1: p21();break; case 2: p22();break; case 3: p23();break; case 4: p24();break; if(zhu=3) p3(); if(zhu=4) p4(); scanf(%d,fu); switch(fu) case 1:
20、 printf(請(qǐng)輸入想刪除的元素對(duì)應(yīng)下標(biāo):); scanf(%d,k); p41(k);top-; break; case 2: printf(請(qǐng)輸入想刪除的元素:); scanf(%d,k); p42(k);top-; break; case 3: printf(請(qǐng)輸入刪除的區(qū)間:); scanf(%d%d,a,b); p43(a,b);top=top-(b-a)-1; break; if(zhu=5) p5(); scanf(%d,fu); switch(fu) case 1: p51();break; case 2: if(a0=atop-1) p52sx(); else p52jx(); break; if(zhu=6) p6(); scanf(%d,fu); switch(fu) case 1: p61();break; case 2: p62();break; case 3: p63
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022年甘肅省甘南自治州公開(kāi)招聘警務(wù)輔助人員筆試自考題2卷含答案
- 2022年四川省雅安市公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2022年浙江省湖州市公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 晨會(huì)主持發(fā)言稿
- 廣西梧州市(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)統(tǒng)編版隨堂測(cè)試(下學(xué)期)試卷及答案
- 2024年姿態(tài)控制推力器、推進(jìn)劑貯箱項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 《應(yīng)收款項(xiàng)新》課件
- 《稱贊教學(xué)》課件
- 2025年毛紡織、染整加工產(chǎn)品項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模范
- 2025年水乳型涂料項(xiàng)目提案報(bào)告模范
- 消防疏散演練宣傳
- 2023-2024學(xué)年廣東省廣州市越秀區(qū)九年級(jí)(上)期末語(yǔ)文試卷
- 五年級(jí)數(shù)學(xué)下冊(cè) 課前預(yù)習(xí)單(人教版)
- 2024-2030年中國(guó)石油壓裂支撐劑行業(yè)供需現(xiàn)狀及投資可行性分析報(bào)告
- 醫(yī)療企業(yè)未來(lái)三年戰(zhàn)略規(guī)劃
- 急診科運(yùn)用PDCA循環(huán)降低急診危重患者院內(nèi)轉(zhuǎn)運(yùn)風(fēng)險(xiǎn)品管圈QCC專案結(jié)題
- 2024年統(tǒng)編版新教材語(yǔ)文小學(xué)一年級(jí)上冊(cè)全冊(cè)單元測(cè)試題及答案(共8單元)
- 四川雅安文化旅游集團(tuán)有限責(zé)任公司招聘考試試卷及答案
- 醫(yī)務(wù)人員職業(yè)暴露預(yù)防及處理課件(完整版)
- DB11T 1470-2022 鋼筋套筒灌漿連接技術(shù)規(guī)程
- 中考數(shù)學(xué)真題試題(含解析)
評(píng)論
0/150
提交評(píng)論