語(yǔ)言編程有關(guān)數(shù)組的幾道例題_第1頁(yè)
語(yǔ)言編程有關(guān)數(shù)組的幾道例題_第2頁(yè)
語(yǔ)言編程有關(guān)數(shù)組的幾道例題_第3頁(yè)
語(yǔ)言編程有關(guān)數(shù)組的幾道例題_第4頁(yè)
語(yǔ)言編程有關(guān)數(shù)組的幾道例題_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論