




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)四 一維數(shù)組、二維數(shù)組一、實(shí)驗(yàn)?zāi)康呐c要求1、熟練掌握一維數(shù)組、二維數(shù)組的定義、賦值和輸入輸出的方法。 2、掌握與數(shù)組有關(guān)的算法。二、實(shí)驗(yàn)內(nèi)容1、(1)輸入N個(gè)整數(shù),使用冒泡排序,將數(shù)據(jù)由大到小輸出。#include "stdafx.h"#include<stdio.h>void swap2(int*,int*);void bubble(int a,int n);int main(void) int n,a8; int i; printf("Enter n(n<=8):"); scanf("%d",&n);
2、 printf("Enter a%d:", n); for(i=0;i<n;i+) scanf("%d", &ai); bubble(a,n);printf("After sorted,a%d=", n);for(i=0;i<n;i+) printf("%3d",ai);return 0;void bubble(int a,int n) /*n是數(shù)組a中待排序元素的數(shù)量*/ int i,j; for(i=1;i<n;i+) /*外部循環(huán)-請(qǐng)問(wèn)這個(gè)嵌套循環(huán)怎么理解?*/ for(j=0;j&
3、lt;n-i;j+) /*內(nèi)部循環(huán)-請(qǐng)問(wèn)這個(gè)嵌套循環(huán)怎么理解?*/ if(aj>aj+1) swap2(&aj,&aj+1); /*交換*/void swap2(int *px,int *py) int t;t=*px;*px=*py;*py=t;單向冒泡排序法:/輸入10個(gè)整數(shù),按從大到小輸出/#include<stdio.h>void main()int i,j,t,a10;printf("請(qǐng)輸入10個(gè)整數(shù)n");for(i=0;i<10;i+)scanf("%d",&ai);for(j=1;j<
4、10;j+) /10個(gè)數(shù)要來(lái)回做(10-1)趟次/for(i=1;i<11-j;i+) /第j趟要做(10-j)次比較/if(ai>ai-1) /每做完一趟,就會(huì)將數(shù)組中較小的一個(gè)數(shù)沉淀下來(lái),較大的數(shù)不斷往上冒/t=ai;ai=ai-1;ai-1=t;printf("按從大到小排序輸出結(jié)果是:n");for(i=0;i<10;i+)printf("%-3d",ai);printf("n");雙向冒泡排序法:/輸入10個(gè)整數(shù),按從大到小輸出/#include<stdio.h>void main()int i
5、,j,t,k,a10;printf("請(qǐng)輸入10個(gè)整數(shù)n");for(i=0;i<10;i+)scanf("%d",&ai);for(j=1;j<10;j+) /10個(gè)數(shù)要來(lái)回做(10-1)趟次/ for(i=1;i<11-j;i+) /第j趟要做(10-j)次比較,雙向冒泡法,是先從上至下兩兩比較一次/ if(ai>ai-1) /每做完一趟,就會(huì)將數(shù)組中較小的一個(gè)數(shù)沉淀下來(lái),較大的數(shù)不斷往上冒/ t=ai;ai=ai-1;ai-1=t; for(k=i-1;k>0;k-) /與單向冒泡不同的是,這是雙向冒泡的關(guān)鍵,
6、每一次從頂至下比較完一次后,同時(shí)再?gòu)南? if(ak>ak-1) /至上比較一次,也就是說(shuō)每一趟數(shù)組中的元素兩兩比較了兩次,這就是雙向冒泡排序了/ t=ak;ak=ak-1;ak-1=t; printf("按從大到小排序輸出結(jié)果是:n");for(i=0;i<10;i+)printf("%-3d",ai);printf("n"); $(2)輸入N個(gè)整數(shù),使用改進(jìn)的冒泡排序,將數(shù)據(jù)由大到小輸出。#include "stdafx.h"#include<stdio.h>void swap2(int
7、*,int*);void bubble(int a,int n);int main(void) int n,a8; int i; printf("Enter n(n<=8):"); scanf("%d",&n); printf("Enter a%d:", n); for(i=0;i<n;i+) scanf("%d", &ai); bubble(a,n);printf("After sorted,a%d=", n);for(i=0;i<n;i+) printf(&
8、quot;%3d",ai);return 0;void bubble(int a,int n) /*n是數(shù)組a中待排序元素的數(shù)量*/ int i,j; for(i=1;i<n;i+) /*外部循環(huán)-請(qǐng)問(wèn)這個(gè)嵌套循環(huán)怎么理解?*/ for(j=0;j<n-i;j+) /*內(nèi)部循環(huán)-請(qǐng)問(wèn)這個(gè)嵌套循環(huán)怎么理解?*/ if(aj>aj+1) swap2(&aj,&aj+1); /*交換*/void swap2(int *px,int *py) int t;t=*px;*px=*py;*py=t;2、*輸入N-1個(gè)整數(shù)組成一數(shù)列,再輸入某數(shù)x,先將數(shù)列排序,根
9、據(jù)x的值插入到有序數(shù)列中。#include<stdio.h> main () void Rank(int N,int n); int i,j,k; int n11; printf("請(qǐng)輸入10個(gè)整數(shù):"); for(i=0;i<10;i+) scanf("%d",&ni); Rank(10,n); /調(diào)用函數(shù)對(duì)輸入的數(shù)組排序printf("n請(qǐng)輸入需要插入的整數(shù):"); scanf("%d",&k); if(k>n9) n10=k; else for(i=0;ni<=k
10、;i+); for(j=9;j>=i;j-) nj+1=nj; /騰出位置,用以插入所輸入的數(shù)ni=k; printf("n排序后此數(shù)列按升序排列為:"); for(i=0;i<=10;i+) printf("%-4d",ni); void Rank(int N,int n) int i,k,iTemp; for(k=1;k<=N-1;k+) for(i=N-1;i>=k;i-) if(ni-1>ni) iTemp=ni; ni=ni-1; ni-1=iTemp; printf("排序后此數(shù)列按升序排列為:&quo
11、t;); for(i=0;i<=N-1;i+) printf("%-4d",ni); printf("n"); 3、輸入行數(shù)n,打印出楊輝三角。#include <stdio.h> int main() int yh101101=,0,1,i,n,m; scanf("%d",&m); /*輸入要打印的行數(shù),不能太大。我水平不高。*/ for(i=2;i<=m;i+) yhi1=yhii=1; for(n=2;n<i;n+) yhin=yhi-1n-1+yhi-1n; for(i=1;i<=m
12、;i+) for(n=1;n<=i;n+) printf("%d ",yhin); printf("n"); return 0; #include<stdio.h>#include<math.h>main() int a88,i,j; for(i=0;i<8;i+)for(j=0;j<8;j+) if(j=0) aij=1;else if(i=j) aij=1;else if(i>j&&j>=1)aij=ai-1j+ai-1j-1;else aij=0; for(i=0;i<8;
13、i+) for(j=0;j<=i;j+) printf("%3d",aij); printf("n"); 4、青年歌手參加歌曲大獎(jiǎng)賽計(jì)分系統(tǒng)(1)有N個(gè)評(píng)委進(jìn)行打分,求這位選手的平均得分(去掉一個(gè)最高分和一個(gè)最低分)。#include <stdio.h>#include <stdlib.h>#include <time.h>void bubble_sort(int a,int n) int i,j, itmp; for (i =0; i<n;i+) for(j=i+1 ;j<n;j+) if( ai
14、>= aj) itmp = aj; aj = ai; ai = itmp; int main( int argc, char *argv) int iguide10 = 0; srand(unsigned )time(NULL); for (int i = 0 ; i< 8;i+) int isum = 0; for (int j = 0 ; j< 10; j+) iguidej = rand()%10 +1; bubble_sort(iguide,10); for (int l = 1;l<=8; l+) isum += iguidel; printf("T
15、he avg score the %d singer get is %d n" ,i+1,isum/8); return 0;$(2)有N個(gè)評(píng)委進(jìn)行打分,求M個(gè)選手每個(gè)人的平均得分(去掉一個(gè)最高分和一個(gè)最低分),并按平均得分由高到低排序輸出。#5、輸入N個(gè)整數(shù),使用選擇排序,將數(shù)據(jù)由大到小輸出。#include <stdio.h>/冒泡法(指針)main() int a10; int i,j,temp; int *p=a; printf("input:"); for(i=0;i<10;i+) scanf("%d",p+i);
16、for(i=1;i<10;i+) for(j=0;j<10-i;j+) if(*(p+j)>*(p+j+1) temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp; for(i=0;i<10;i+) printf("%4d",*(p+i); printf("n");補(bǔ)充作業(yè)實(shí)驗(yàn)題:1. 輸入10個(gè)數(shù),按小到大排序。#include<stdio.h>main() int i,j,temp,a10,n; for(i=0;i<10;i+) scanf("%d",&
17、;ai); for(i=0;i<=8;i+) for(j=i+1;j<10;j+) if(ai>aj) temp=ai; ai=aj; aj=temp; for(i=0;i<10;i+) printf("%5d",ai);printf("n");scanf("%d",&n); if(n>a9) a10=n; else for(i=0;i<9;i+) if(ai>n) for(j=9;j>=i;j-) aj+1=aj; ai=n; break; printf("11shu
18、n"); for(i=0;i<=10;i+) printf("%4d",ai);2. 求10個(gè)數(shù)中大于平均值的數(shù)的個(gè)數(shù)#include <stdio.h>void main()float a10,sum,average;int i;sum=0.0;printf("請(qǐng)輸入十位數(shù):n");for(i=0;i<10;i+)scanf("%f",&ai);for(i=0;i<10;i+)sum=sum+ai;average=sum/10;sum=0.0;for(i=0;i<10;i+)if(ai>=average)sum=sum+ai;printf(&
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五私企員工勞動(dòng)合同與員工績(jī)效評(píng)估
- 2025年度無(wú)產(chǎn)權(quán)車庫(kù)轉(zhuǎn)讓及附屬綠化帶使用協(xié)議
- 二零二五年度科技型企業(yè)融資合作框架
- 2025年度礦山股份合作保險(xiǎn)合同:礦山安全生產(chǎn)責(zé)任險(xiǎn)與財(cái)產(chǎn)險(xiǎn)合作協(xié)議
- 二零二五年度城市軌道交通工程用工管理協(xié)議
- 2025年度首飾抵押借款合同購(gòu)買設(shè)計(jì)師首飾服務(wù)協(xié)議
- 2025年手房購(gòu)房合同(含車位及儲(chǔ)藏室)
- 【央企招聘】中煤電力有限公司所屬企業(yè)公開招聘(24人)筆試參考題庫(kù)附帶答案詳解
- 2025遼寧鞍山市臺(tái)安農(nóng)業(yè)發(fā)展集團(tuán)有限公司招聘11人筆試參考題庫(kù)附帶答案詳解
- 2025福建投資集團(tuán)能源板塊去場(chǎng)招聘114人筆試參考題庫(kù)附帶答案詳解
- 2023年山東化工職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試筆試題庫(kù)及答案解析
- 廣東省廣州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- 綠化移植施工方案及技術(shù)措施
- 江蘇省三級(jí)綜合醫(yī)院評(píng)審標(biāo)準(zhǔn)實(shí)施細(xì)則2017版
- 貴州區(qū)域地質(zhì)地史概述
- 監(jiān)理大綱維修改造項(xiàng)目
- 中國(guó)著名的塔課件
- 邢臺(tái)市區(qū)土地級(jí)別及基準(zhǔn)地價(jià)表
- 李小建《經(jīng)濟(jì)地理學(xué)》(電子版)
- 中央空調(diào)安裝施工組織設(shè)計(jì)方案(水、多聯(lián)機(jī))
- 2022年最新蘇教版五年級(jí)下冊(cè)科學(xué)全冊(cè)教案
評(píng)論
0/150
提交評(píng)論