程序設(shè)計(jì)基礎(chǔ)第6章 - part2_W_第1頁(yè)
程序設(shè)計(jì)基礎(chǔ)第6章 - part2_W_第2頁(yè)
程序設(shè)計(jì)基礎(chǔ)第6章 - part2_W_第3頁(yè)
程序設(shè)計(jì)基礎(chǔ)第6章 - part2_W_第4頁(yè)
程序設(shè)計(jì)基礎(chǔ)第6章 - part2_W_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、怎樣學(xué)好C語(yǔ)言?棋類(lèi)當(dāng)中的定式熟練掌握常用的固定用法判斷素?cái)?shù)的“定式”for(i=2; in; i+) if(n%i=0)break;int flag = 0;/不是素?cái)?shù)if(i=n)flag = 1;/是素?cái)?shù)交換兩個(gè)數(shù)的“定式”int a, b, temp; temp = a; a = b;b = temp;/ 對(duì)a,b賦值問(wèn)題 C: 在數(shù)組中查找元素(數(shù)組)題目描述定義一個(gè)大小為10的整型數(shù)組,讓用戶(hù)從鍵盤(pán)輸入10個(gè)數(shù)據(jù);然后讓用戶(hù)輸入一個(gè)數(shù)據(jù),在數(shù)組中查找該數(shù)據(jù)第一次出現(xiàn)的位置,找到了,輸出該元素的下標(biāo),找不到,輸出“Not found”。樣例輸入 3115512 22 33 44 55

2、 66 7 8 9 10034 56 78 -4 -5 -7 90 99 23100-9 56 91 92 90 38 39 21 34 6161樣例輸出 4Not found 9/Copyright 一位不愿意透露姓名的仙女#include int main(void)int a10,n,t,i,m,find=0;scanf(%d,&n); for(t=1;t=n;t+)for(i=0;i=9;i+)for(i=0;i=9;i+)if(m=ai)printf(%dn,i); find=1;break;if(find=0)printf(Not foundn);scanf(%d,&ai);fin

3、d=0;scanf(%d,&m);return 0;圈 C : U s e r s Y u L u D e s k t op 10 6 5 . e x e 311223344556678910055Notf ou n dNotf ou n dNotf ou n dNotf ou n d412345678- 4- 5- 7909923100Notf ou n dNotf ou n dNotf ou n dNotf ou n dNotf ou n dNotf ou n dNotf ou n dNotf ou n dNotf ou n dNotf ou n d 9569192903839213461

4、61Notf o u n dNotf o u n dNotf o u n dNotf o u n dNotf o u n dNotf o u n dNotf o u n dNotf o u n dNotf o u n d 9/Copyright 一位不愿意透露姓名的仙女#include int main(void)int a10,n,t,i,m,find=0;scanf(%d,&n); for(t=1;t=n;t+)for(i=0;i=9;i+)for(i=0;i=9;i+)if(m=ai)printf(%dn,i); find=1;break;if(find=0)printf(Not fou

5、ndn);scanf(%d,&ai);find=0;scanf(%d,&m);return 0;/Copyright 一位不愿意透露姓名的仙女#include int main(void)int a10,n,t,i,m,find=0;scanf(%d,&n); for(t=1;t=n;t+)for(i=0;i=9;i+)if(m=ai)printf(%dn,i); find=1;break;for(i=0;i=9;i+)scanf(%d,&ai);if(find=0) printf(Not foundn); find=0;scanf(%d,&m);return 0;.一維數(shù)組程序舉例f19f1

6、919f0f1f2f3f4f511235012345【例6.2】用數(shù)組求Fibonacci數(shù)列前20個(gè)數(shù)。(n = 1)(n = 2)(n 2)F1 = 1F2 = 1Fn = Fn-1 + Fn-2【例6.2】用數(shù)組求Fibonacci數(shù)列前20個(gè)數(shù)。#include int main(void)int i;int f20=1,1;/對(duì)最前面兩個(gè)元素f0和f1賦初值1 for(i=2; i20; i+)fi=fi-2+fi-1;/先后求出f2f19的值for(i=0; i20; i+)if(i%5=0)printf(n);/控制每輸出5個(gè)數(shù)后換行printf(%12d,fi);/輸出一個(gè)數(shù)p

7、rintf(n); return 0;【例6.2】用數(shù)組求Fibonacci數(shù)列前20個(gè)數(shù)。#include int main(void)int i;int f20=1,1;/對(duì)最前面兩個(gè)元素f0和f1賦初值1 for(i=2; i20; i+)fi=fi-2+fi-1;/先后求出f2f19的值for(i=0; i20; i+)if(i%5=0)printf(n);/控制每輸出5個(gè)數(shù)后換行printf(%12d,fi);/輸出一個(gè)數(shù)printf(n); return 0;#include int main(void)int i;int f20=1,1;printf(%12d,f0);print

8、f(%12d,f1); for(i=2; i20; i+)fi=fi-2+fi-1; if(i%5=0)printf(n); printf(%12d,fi);printf(n); return 0;int i;int f20=1,1;printf(%12d,f0);printf(%12d,f1); for(i=2; i20; i+)fi=fi-2+fi-1; if(i%5=0)printf(n); printf(%12d,fi);printf(n);return 0;#include int main(void)一維數(shù)組程序舉例854254204204205508889999第二趟第三趟第四趟

9、第五趟【例6.3】有10個(gè)地區(qū)的面積,要求對(duì)它們按由小到大的順序排列。985420第一趟 一維數(shù)組程序舉例【例6.3】有10個(gè)地區(qū)的面積,要求對(duì)它們按由小到大的順序排列。輸入10個(gè)數(shù)給a0a9j由0變到8共執(zhí)行9次循環(huán)進(jìn)行9-j次比較真aiai+1假ai與ai+1交換輸出a0a9【例6.3】有10個(gè)地區(qū)的面積,要求對(duì)它們按由小到大的順序排列。#include int main(void)int a10;int i,j,t;printf(input 10 numbers :n); for (i=0; i10; i+)scanf(%d,&ai); printf(n);for( j=0;j9;j+)

10、/進(jìn)行9次循環(huán),實(shí)現(xiàn)9次比較for(i=0;iai+1)/相鄰兩個(gè)數(shù)比較t=ai; ai=ai+1; ai+1=t;printf(the sorted numbers :n); for(i=0;i10;i+)printf(%d ,ai); printf(n);return 0;include if(aiai+1)/相鄰兩個(gè)數(shù)比較nt main(void)t=ai;int a10;ai=ai+1;int i,j,t;ai+1=t;printf(input 10 numbers :n);for (i=0; i10; i+)printf(the sorted numbers :n); scanf(%

11、d,&ai);for(i=0;i10;i+)printf(n);printf(%d ,ai);printf(n);return 0;【例6.3】有10個(gè)地區(qū)的面積,要求對(duì)它們按由小到大的順序排列。#ifor( j=0;j9;j+)/進(jìn)行9次循環(huán),實(shí)現(xiàn)9次比較for(i=0;i9-j;i+)/在每一趟中進(jìn)行9-j次比較二維數(shù)組定義和引用二維數(shù)組隊(duì)員1隊(duì)員2隊(duì)員3隊(duì)員4隊(duì)員5隊(duì)員6第1分隊(duì)245618471243160023462757第2分隊(duì)304520181725202024581436第3分隊(duì)142711751046197614772018小例子x有3個(gè)小分隊(duì),每隊(duì)有6名隊(duì)員,要把這些隊(duì)x員

12、的工資用數(shù)組保存起來(lái)以備查。如果建立一個(gè)數(shù)組pay,它應(yīng)當(dāng)是二維的,第一維用來(lái)表示第幾分隊(duì),第二維用來(lái)表示第幾個(gè)隊(duì)員。例如用pay2,3表示2分隊(duì)第3名隊(duì)員的工資,它的值是1725。二維數(shù)組常稱(chēng)為矩陣(matrix)。把二維數(shù)組寫(xiě)成行(row)和列(column)的排列形式,可以有助于形象化地理解二維數(shù)組的邏輯結(jié)構(gòu)。數(shù)組名為payfloat型二維數(shù)組定義二維數(shù)組float a34, b510;/定義a為34(3行4列)的數(shù)組,b為510(5行10列)的數(shù)組數(shù)組第二維有6個(gè)元素類(lèi)型說(shuō)明符數(shù)組名常量表達(dá)式常量表達(dá)式float pay36;float a3, 4, b5, 10;/在一對(duì)方括號(hào)內(nèi)不能

13、寫(xiě)兩個(gè)下標(biāo)數(shù)組第一維有3個(gè)元素二維數(shù)組可被看作一種特殊的一維數(shù)組: 它的元素又是一個(gè)一維數(shù)組。例如,float a34;可以把a(bǔ)看作一個(gè)一維數(shù)組,它有3個(gè)元素:a0, a1, a2,每個(gè)元素又是一個(gè)包含4個(gè)元素的一維數(shù)組:a0 a00 a01 a02 a03a1 a10 a11 a12 a13a2 a20 a21 a22 a23二維數(shù)組的存儲(chǔ)C語(yǔ)言中,二維數(shù)組中元素排列的順序是按行存放的。float a34a00a01a02a03a10a11a12a13a20a21a22a232000200420082012201620202024202820322036a00 a01a02a03a10a11

14、a12a13a20第0行元素第1行元素注意 用矩陣形式(如3行4列形式)表示二維數(shù)組,是邏輯上的概念,能形象地表示出行列關(guān)系。而在內(nèi)存中,各元素是連續(xù)存放的,不是二維的,是線(xiàn)性的。20402044a21a22a23 第2行元素?cái)?shù)組數(shù)組int a2340c0001c0012c0023c0034c0106int a234; /定義三維數(shù)組a,它有2頁(yè),3行,4列57最右邊的下標(biāo)a012a101a120.數(shù)組元素在內(nèi)存中的排列順序?yàn)?第1維的下標(biāo)變化最慢, 變化最快。int a234;在內(nèi)存中的排列順序?yàn)椋篴000a001a002a003a010a011a013a020a021a022a023a10

15、0a102a103a110a111a112a11320c011c012c013c020c021c022c023c100c101c102c103c110c111c112c113a121a122 a123c12021c12122c12223c123注意引用二維數(shù)組元素?cái)?shù)組名下標(biāo) 下標(biāo)“下標(biāo)”可以是整型常量或整型表達(dá)式。數(shù)組元素可以出現(xiàn)在表達(dá)式中, 也可以被賦值,例如:b12=a23/2; 在引用數(shù)組元素時(shí),下標(biāo)值應(yīng)在已定義的數(shù)組大小的范圍內(nèi)。int a34;/定義a為34的二維數(shù)組a34=3; /不存在a34元素/數(shù)組a可用的“行下標(biāo)”的范圍為02, “列下標(biāo)”的范圍為03 嚴(yán)格區(qū)分在定義數(shù)組時(shí)用

16、的a34和引用元素時(shí)的a34的區(qū)別。前者用a34來(lái)定義數(shù)組的維數(shù)和各維的大小,后者a34中的3和4是數(shù)組元素的下標(biāo)值,a34代表行序號(hào)為3、列序號(hào)為4的元素(行序號(hào)和列序號(hào)均從0起算)。二維數(shù)組的初始化可以用“初始化列表”對(duì)二維數(shù)組初始化。int a34=1,2,3,4,5,6,7,8,9,10,11,12;(1) 分行給二維數(shù)組賦初值。(最清楚直觀)int a34=1,2,3,4,5,6,7,8,9,10,11,12;(2) 可以將所有數(shù)據(jù)寫(xiě)在一個(gè)花括號(hào)內(nèi),按數(shù)組元素在內(nèi)存中的排列順序?qū)Ω髟刭x初值。int a34=1,5,6;int a34=1,9;二維數(shù)組的初始化可以用“初始化列表”對(duì)二

17、維數(shù)組初始化。int a34=1,5,9;int a34=1,0,6,0,0,11;11 00000060100100050009000100010005600000000009000(3) 可以對(duì)部分元素賦初值。二維數(shù)組的初始化可以用“初始化列表”對(duì)二維數(shù)組初始化。(4) 如果對(duì)全部元素都賦初值(即提供全部初始數(shù)據(jù)),則定義數(shù)組時(shí)對(duì)第1維的長(zhǎng)度可以不指定,但第2維的長(zhǎng)度不能省。int a34=1,2,3,4,5,6,7,8,9,10,11,12;int a4=1,2,3,4,5,6,7,8,9,10,11,12;int a4=0,0,3,0,10;在定義時(shí)也可以只對(duì)部分元素賦初值而省略第1維

18、的長(zhǎng)度,但應(yīng)分行賦初值。數(shù)組各元素為二維數(shù)組在程序中賦值通過(guò)鍵盤(pán)輸入對(duì)二維數(shù)組a各元素賦值inti, j, a23;for (i = 0; i 2; i+) for ( j = 0; j 3; j+)scanf (%d, &ai j);inti, j, a23;for (i = 0; i 2; i+)for ( j = 0; j 3; j+)scanf (%d, &ai j);二維數(shù)組在程序中賦值(擴(kuò)展)調(diào)用memset函數(shù)把數(shù)組a的各元素清0inta23;memset(a, 0, 6 * sizeof(int);通過(guò)memcpy函數(shù)將數(shù)組a各元素的值復(fù)制到數(shù)組b的各元素中intb23;memcpy(b, a, 6 * sizeof(int);二維數(shù)組程序舉例【例6.4】將

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論