freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[計(jì)算機(jī)軟件及應(yīng)用]第06章數(shù)組-文庫(kù)吧資料

2025-01-25 17:34本頁(yè)面
  

【正文】 } score[i][NUM_course] /= NUM_course。 j++) { score[i][NUM_course] += score[i][j]。 i++) { for (j = 0。 //輸入第 i個(gè)學(xué)生的第 j門(mén)課的成績(jī) } for (i = 0。 scanf (%f, amp。 j NUM_course。 i NUM_std。 //定義成績(jī)數(shù)組,各元素初值為 0 float score[NUM_std+1][NUM_course+1] = {0}。成績(jī)數(shù)據(jù)的輸入輸出以及每個(gè)學(xué)生的平均成績(jī)、各門(mén)課程的平均成績(jī)的計(jì)算方法比較簡(jiǎn)單。這個(gè)數(shù)組的每一行表示某個(gè)學(xué)生的各門(mén)課的成績(jī)及其平均成績(jī),每一列表示某門(mén)課的所有學(xué)生成績(jī)及該課程的平均成績(jī)。 二維數(shù)組的應(yīng)用舉例 【 例 1】 輸入多個(gè)學(xué)生多門(mén)課程的成績(jī),分別求每個(gè)學(xué)生的平均成績(jī)和每門(mén)課程的平均成績(jī)。 例 : 通過(guò) memcpy函數(shù)將數(shù)組 a各元素的值復(fù)制到數(shù)組 b的各元素中 int b[2][3]。 例 : 調(diào)用 memset函數(shù)把數(shù)組 a的各元素清 0 int a[2][3]。 j++) scanf (%d, amp。 i++) for (j = 0。 for (i = 0。 a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 3 0 0 0 對(duì)數(shù)組元素部分賦值 例: int a[ ][3] = { 1, 2, 3, 4 }。 a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 0 4 0 0 省掉第一維的大小 ? 按元素排列順序初始化 存儲(chǔ)類型符 數(shù)據(jù)類型 數(shù)組變量名 [行常量表達(dá)式 ][列常量表達(dá)式 ] = { 初值表 }; 例: int a[2][3] = { 1, 2, 3, 4, 5, 6 }。 a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 3 4 5 6 對(duì)數(shù)組元素全部賦值 例: int a[2][3] = { { 1 }, { 3 } }。 (?) 行數(shù) 列數(shù) 元素個(gè)數(shù) =行數(shù) *列數(shù) int a[3][2] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] 0 1 4 5 2 3 a[0][0] a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] int c[2][3][4] 0 1 2 3 4 5 6 7 ………... 20 21 22 23 c[0][0][0] c[0][0][1] c[0][0][2] c[0][0][3] c[0][1][0] c[0][1][1] c[0][1][2] c[0][1][3] c[0][2][0] c[0][2][1] c[0][2][2] c[0][2][3] c[1][0][0] c[1][0][1] c[1][0][2] c[1][0][3] c[1][1][0] c[1][1][1] c[1][1][2] c[1][1][3] c[1][2][0] c[1][2][1] c[1][2][2] c[1][2][3] ?二維數(shù)組理解 例 int a[3][4]。 int c[2][3][4]。 } 2 二維數(shù)組及多維數(shù)組 二維數(shù)組的定義 ?定義方式: 數(shù)據(jù)類型 數(shù)組名 [常量表達(dá)式 1][常量表達(dá)式 2]; ?數(shù)組元素的存放順序 ?原因 :內(nèi)存是一維的 ?二維數(shù)組:按行序優(yōu)先 ?多維數(shù)組:最右下標(biāo)變化最快 例 int a[3][4]。j) v[j]=v[j1]。 for(j=n。 ? 程序 void insert(int x,int v[],int n)//x表示插入的元素 { int i=0,j。 – 移動(dòng)部分元素,先移動(dòng)最后一個(gè)元素,最后移動(dòng)待插入位置元素?,F(xiàn)在發(fā)現(xiàn)有某個(gè)成績(jī)被遺漏,需要插入,并使插入后的所有成績(jī)依然有序。i++) v[i]=v[i+1]。 if(location!=1) for(i=location。 int i。 – 從被刪除位置的后一個(gè)元素開(kāi)始到最后一個(gè)元素都向前移動(dòng)一個(gè)位置。 ? 步驟: – 查找待刪除數(shù)據(jù)的位置。 //未找到 } 成績(jī)的插入和刪除 [例 6]假設(shè)成績(jī)已經(jīng)輸入,并按照從大到小的順序排列好。 else return mid。 if(xv[mid]) bottom=mid1。 /*折半法在元素按升序排列得數(shù)組 v中查找值為 x得元素*/ int binsearch(int x, int v[], int n) { int top,bottom=n1,mid。 ( 4)無(wú)論往前還是往后,下一步要與 x比較的是位于所選的那一半中間的那個(gè)元素。 ( 2) top=0,bottom=n1,mid=(top+bottom)/2 ( 3)首先將 x與位于數(shù)組中間那個(gè)元素 v[mid]進(jìn)行比較,如果 x小于 v[mid],則在數(shù)組的前一半元素中查找。 } 二分查找函數(shù) 思想: ( 1)按折半的方法在一個(gè)有序數(shù)組中查找一個(gè)給定值的元素。 } i++。!found) { if(list[i]==key) { found=TRUE。 while(isizeamp。 found=FALSE。 } } 一維數(shù)組應(yīng)用舉例 F1 = 1 (n = 1) F2 = 1 (n = 2) Fn = Fn1 + Fn2 (n ≥2) 一維數(shù)組應(yīng)用舉例 【 例 5】 數(shù)據(jù)的查找 數(shù)據(jù)查找: ( 1)線性查找(順序查找) ( 2)二分查找 define TRUE 1 define FALSE 0 int linesearch(int list[],int size, int key) { int index, found, i。 i++) { if (i % 5 == 0) printf (\n)。 for (i = 0。 i 20。 int f[20] = {1, 1}。 v[j+gap]=temp。 j=gap) { temp=v[j]。amp。 i++) for(j=igap。 gap/=2) for(i=gap。 for(gap=n/2。 – 當(dāng)間隔減小到 0時(shí)算法結(jié)束。 – 把后一段的每個(gè)元素分別與前一段間隔 n/2處的元素進(jìn)行比較,如果后者大于前者,則交換。 i++) printf (%d , a[i])。 for (i = 1。 a[k] = x。 if (i != k) { x = a[i]。 j = 10。 i++) { k = i。 for (i = 1。a[i])。 i 11。 printf (Input 10 numbers: \n)。 } } 一維數(shù)組應(yīng)用舉例 【 例 3】 用 選擇排序法 將 10個(gè)整數(shù)按照從小到大的順序排序 排序過(guò)程: (1) 首先通過(guò) n1次比較,從 n個(gè)數(shù)中找出最小的, 將它與第一個(gè)數(shù)交換 —第一趟選擇排序 ,結(jié)果最小的數(shù)被安置在第一個(gè)元素位置上; (2) 再通過(guò) n2次比較,從剩余的 n1個(gè)數(shù)中找出關(guān)鍵字次小的記錄,將它與第二個(gè)數(shù)交換 —第二趟選擇排序; (3) 重復(fù)上述過(guò)程,共經(jīng)過(guò) n1趟排序后,排序結(jié)束。 s[j]=s[j+1]。jn1i。in1。 } void sort(int s[ ],int n) { int i,j,temp。in。 } void output(int s[ ],int n) { int i。i++) scanf(%d,amp。 for(i=0。 } void input(int s[ ],int n) { int i。 sort(a,N)。 void main(void) { int a[N]。 void output(int [ ],int n) 。 i++) printf (%d , a[i])。 //輸出排好序的數(shù)據(jù) for (i = 0。 } if (flag = = 0) break。 a[j+1] = t。 j++) //實(shí)現(xiàn)一次冒泡操作 if (a[j] a[j+1]) //交換 a[j]和 a[j+1] { t = a[j]。 for (j = 0。 i NUM。a[i])。 i NUM。 printf (input %d numbers: \n, NUM)。在這一趟比較結(jié)束后判斷如果flag變量取值等于 0表示可以結(jié)束排序過(guò)程,否則進(jìn)行下一趟比較。 如何修改呢? 對(duì)冒泡排序的改進(jìn) : 當(dāng)一次冒泡過(guò)程中發(fā)現(xiàn)沒(méi)有交換操作時(shí),表明序列已經(jīng)排好序了,便終止冒泡操作。 i++) printf (%d , a[i])。 for (i = 0。 a[j+1] = t。 j++) //實(shí)現(xiàn)一次冒泡操作 if (a[j] a[j+1]) //交換 a[j]和 a[j+1] { t = a[j]。 i++) //趟數(shù),共 NUM1趟 for (j = 0。 for (i = 1。 i++) //輸入 NUM個(gè)整數(shù) scanf (%d, amp。 for (i = 0。 } 運(yùn)行結(jié)果: AABBCCxyYzEEE ↙ A(2) B(2) C(2) D(0) E(3) F(0) G(0) H(0) I(0) J(0) K(0) L(0) M(0) N(0) O(0) P(0) Q(0) R(0) S(0) T(0) U(0) V(0) W(0) X(0) Y(1) Z(0) 一維數(shù)組應(yīng)用舉例 【 例 2】 用 冒泡排序法 將 10個(gè)整數(shù)按照從小到大的順序排序 排序過(guò)程: (1) 比較第一個(gè)數(shù)與第二個(gè)數(shù),若為逆序 a[0]a[1],則交換;然后比較第二個(gè)數(shù)與第三個(gè)數(shù);依次類推,直至第n1個(gè)數(shù)和第 n個(gè)數(shù)比較為止 ——第一趟冒泡排序,結(jié)果最大的數(shù)被安置在最后一個(gè)元素位置上; (2) 對(duì)前 n1個(gè)數(shù)進(jìn)行第二趟冒泡排序,結(jié)果使次大的數(shù)被安置在第 n1個(gè)元素位置; (3) 重復(fù)上述過(guò)程,共經(jīng)過(guò) n1趟冒泡排序后,排序結(jié)束 38 49 65 76 13 27 30 97 第一趟 38 49 65 13 27 30 76 第二趟 38 49 13 27 30 65 第三趟 38 13 27 30 49 第四趟 13 27 30 38 第五趟 13 27 30 第六趟 13 27 第七趟 49 38 65 97 76 13 27 30 初始關(guān)鍵字 n = 8 38 49
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1