




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
類型說明符數(shù)組名[常量];內(nèi)存映象:編譯時(shí)分配一片連續(xù)的內(nèi)存空間,數(shù)組名為該空間的首地址——常量地址。aa[5]5a[4]4a[3]3a[2]2a[1]1a[0]0例如:inta[6];一.一維數(shù)組定義數(shù)組是具有一定順序的假設(shè)干同數(shù)據(jù)類型變量的集合體。數(shù)組要有名稱,要有規(guī)模。a==&a[0]1整理課件
數(shù)組元素變量表示形式:
數(shù)組名[下標(biāo)]
其中:下標(biāo)可以是整型常量或整型表達(dá)式二.一維數(shù)組的引用
只能逐個(gè)引用數(shù)組元素變量,不能一次引用整個(gè)數(shù)組例:inta[10];printf(“%d〞,a);例:a[0]=a[5]+a[7]-a[2*3];/*常量做下標(biāo)*/
a[i]=a[i]+1;
/*表達(dá)式做下標(biāo)*/×數(shù)組必須先定義,后使用2整理課件例1:讀程序。main(){inti,a[10];for(i=0;i<=9;i++)a[i]=i;for(i=9;i>=0;i--)printf(“%d〞,a[i]);}9876543210定義數(shù)組引用數(shù)組3整理課件例2:讀程序,寫結(jié)果。main(){inti,a[10],k=0;for(i=0;i<10;i++)a[i]=i;for(i=1;i<4;i++)k+=a[i]+i;printf(“%d〞,k);}4整理課件
定義數(shù)組的同時(shí),給數(shù)組元素變量賦初值。例:inta[5]={2,4,6,8,10};(1)初始數(shù)據(jù)多于數(shù)組規(guī)模時(shí)語法錯(cuò)誤。
例:inta[5]={2,4,6,8,10,12};(×)(2)初始數(shù)據(jù)少于數(shù)組元素個(gè)數(shù)時(shí),多出的數(shù)組元素賦零值。例1:inta[5]={2,4,6};例2:inta[10]={};區(qū)別于:inta[10];(3)對[]中的數(shù)字可以省,數(shù)組元素個(gè)數(shù)由初始值個(gè)數(shù)決定。intb[]={8,21,13,7};[注]:三.一維數(shù)組初始化5整理課件#include<stdio.h>voidmain(void){inta[10],k,sum=0;for(k=0;k<10;k++)scanf(“%d〞,&a[k]);for(k=0;k<10;k++)sum+=a[k];printf(“Averageis%f\n〞,sum/10.0);}92856875548898456179928568548898457561790123456789a例1:讀入10個(gè)學(xué)生的成績存于數(shù)組,求平均成績。四.一維數(shù)組的應(yīng)用6整理課件for(i=0,j=n-1;i<j;i++,j--)
{t=a[i];a[i]=a[j];a[j]=t;}分析:1.a[0]與a[9]交換,a[1]交換a[8],依此類推。例2:讀入10個(gè)整數(shù)存于數(shù)組并輸出;將數(shù)組中的元素顛倒順序排放后再輸出。2.如何控制循環(huán)?92856854889845756179a79614588547568988592或:n=10;for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-i-1];a[n-i-1]=t;}ijijij只需循環(huán)到一半.ijij7整理課件#include<stdio.h>main(){inti,j,a[10],t;for(i=0;i<=9;i++)scanf(“%d〞,&a[i]);for(i=0;i<=9;i++)printf(“%d,〞,a[i]);for(i=0,j=9;i<j;i++,j--){t=a[i];a[i]=a[j];a[j]=t;}for(i=0;i<=9;i++)printf(“%d,〞,a[i]);}8整理課件
f0=1(n=0)f1=1(n=1)fn=fn-1+fn-2(n2)f[0]f[1]f[2]f[3]f[4]f[5]f[19]……...11f[19]01452319235#include<stdio.h>main(){inti;
longf[20]={1,1};
for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++){
if(i%4==0)printf("\n");printf("%12ld"
,f[i]);}}例3:用數(shù)組求Fibonacci數(shù)列前20個(gè)數(shù)9整理課件步驟:1.輸入:用for循環(huán)輸入10個(gè)整數(shù)存于數(shù)組2.處理:(a)先令max=min=a[0](b)依次用a[i]和max,min比較(循環(huán)){假設(shè)max<a[i],令max=a[i]假設(shè)min>a[i],令min=a[i]}3.輸出:max和min例4:讀10個(gè)整數(shù)存入數(shù)組,找出其中最大值和最小值。#include<stdio.h>voidmain(void){inta[10],max,min,i;printf(“輸入10個(gè)整數(shù):\n");for(i=0;i<10;i++)scanf(“%d〞,&a[i]);max=min=a[0];for(i=1;i<10;i++){if(max<a[i])max=a[i];if(min>a[i])min=a[i];}printf(“最大值為:%d\n〞,max);printf(“最小值為:%d\n〞,min);}10整理課件例5:讀入10個(gè)整數(shù)給數(shù)組,找出10個(gè)數(shù)中最大值所在的位置。#include<stdio.h>main(){inta[10],i,k;for(i=0;i<=9;i++)scanf(“%d〞,&a[i]);k=0;for(i=1;i<=9;i++)if(a[i]>a[k])k=i;for(i=0;i<=9;i++)printf(“%d\t〞,a[i]);printf(“max=%d,locate=%d\n〞,a[k],k);}11整理課件排序過程:(對n個(gè)整數(shù)排序)比較第一個(gè)數(shù)與第二個(gè)數(shù),把較大的數(shù)放后面;然后比較第二個(gè)數(shù)與第三個(gè)數(shù),仍把較大的數(shù)放后面;依次類推,直至第n-1個(gè)數(shù)和第n個(gè)數(shù)比較完為止——結(jié)果最大的數(shù)被安置在最后的位置上,這就完成了第一趟冒泡排序。對前n-1個(gè)數(shù)進(jìn)行第二趟冒泡排序,結(jié)果使次大的數(shù)被安置在第n-1個(gè)元素位置。重復(fù)上述過程,共經(jīng)過n-1趟冒泡排序后,排序結(jié)束。例6:用起泡法對8個(gè)整數(shù)按從小到大的順序排序.12整理課件4938659776132730第一趟k=13849657613273097第二趟
k=23849651327307697第三趟
k=33849132730657697第四趟
k=43813273049657697第五趟
k=51327303849657697第六趟
k=61327303849657697第七趟
k=73849769713972797137627761365276513492749133827384938659776132730初始值N=8a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]9730a[7]7630a[6]6530a[5]4930a[4]3830a[3]30a[2]27a[1]13整理課件第1趟排序(k=1):從第1個(gè)元素開始兩兩比較,最大的數(shù)被放在最后for(i=0;i<=6;i++)if(a[i]>a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;}第一次循環(huán)后,a[7]是最大的。第2趟排序(k=2)
:for(i=0;i<=5;i++)if(a[i]>a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;}i<=8-1-1;i<=8-1-2;在第k趟排序比較時(shí):i<=8-1-k8個(gè)數(shù)組元素排序:14整理課件#include<stdio.h>main(){/*對10個(gè)整數(shù)排序*/inta[10]={9,8,5,4,2,0,6,1,3,7},i,k;for(k=1;k<10;k++)for(i=0;i<=10-1-k;j++)if(a[i>a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;}for(i=0;i<10;i++)printf(“%3d〞,a[i]);}15整理課件例7:100名同學(xué)被學(xué)校食堂邀請來為某一種食品打分,分?jǐn)?shù)分為從1到10的10個(gè)等級(1分最低分,10表示最高分),統(tǒng)計(jì)調(diào)查結(jié)果并輸出。分析:(1)需要10個(gè)計(jì)數(shù)器用于統(tǒng)計(jì):intcount[11]={0};(2)循環(huán)100次(i從1~100),第i次讀一個(gè)整數(shù)n作為第i個(gè)同學(xué)打的分?jǐn)?shù),之后將該分?jǐn)?shù)對應(yīng)下標(biāo)的數(shù)組元素加1。count[n]++n=1count[1]++n=2count[2]++n=10count[10]++3333333333333111111133333333333c[1]c[2]c[3]…c[10]16整理課件main(){intcount[11]={0};inti,n;for(i=1;i<=100;i++){scanf(“%d〞,&n);count[n]++;}for(i=1;i<=10;i++)printf(“%d:%d\n〞,i,count[i]);}問:如何實(shí)現(xiàn)讀入一串大寫字符,以字符’?’結(jié)束,統(tǒng)計(jì)每個(gè)字母出現(xiàn)的次數(shù)。intcount[26]={0};intn;charch;while((ch=getchar())!=‘?’)n=ch-‘A’;for(ch=‘A’;ch<=‘Z’;ch++)printf(“%c:%d\n〞,ch,count[ch-’A’]);}17整理課件在數(shù)學(xué)中我們常常會(huì)用到矩陣,它的結(jié)構(gòu)如下:怎樣用一種數(shù)據(jù)結(jié)構(gòu)來表示矩陣呢?6.2多維數(shù)組思考問題?18整理課件2.二維數(shù)組元素變量的引用:
數(shù)組名[行表達(dá)式][列表達(dá)式]1.定義方式:
數(shù)據(jù)類型
數(shù)組名[整型常量1][整型常量2];例:floatf[3][4];intmyarray[5][9];一.二維數(shù)組的定義和引用行數(shù)列數(shù)元素個(gè)數(shù)=行數(shù)*列數(shù)下標(biāo)從0開始下標(biāo)從0開始19整理課件內(nèi)存映象:編譯時(shí)為二維數(shù)組分配一片連續(xù)的內(nèi)存空間,一行一行地存儲(chǔ)所有的數(shù)組元素,數(shù)組名為該空間的首地址——地址常量。例inta[3][4];
a[0][0]a[0][1]a[0][2]a[0][3]a[1][0]a[1][1]a[1][2]a[1][3]a[2][0]a[2][1]a[2][2]a[2][3]014523a[0][1]a[0][0]a[2][3]67101189aa[0][2]a[0][3]a[1][0]a[1][1]a[1][3]a[2][0]a[2][1]a[2][2]a[1][2]a與&a[0][0]相同二.二維數(shù)組元素的存放順序20整理課件三.二維數(shù)組的初始化②按元素排列順序初始化例inta[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]123456全部初始化例inta[2][3]={{1,2},{4}};a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]120400部分初始化例inta[][3]={{1},{4,5}};a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]100450第一維長度省略初始化例inta[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]123456全部初始化①分行初始化例inta[][3]={1,2,3,4,5};a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]123450第一維長度省略初始化例inta[2][3]={1,2,4};a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]124000部分初始化21整理課件
k=1;
for(i=0;i<4;i++)for(j=0;j<4;j++)
a[i][j]=k++;四.二維數(shù)組程序舉例(3)由循環(huán)變量自動(dòng)賦值
12345678910111213141516如何讀入6個(gè)數(shù)據(jù)?例1:在程序中使數(shù)組獲得值的方法。(1)初始化數(shù)組:inta[2][3]={1,2,3,4,5,6};(2)用scanf語句由用戶輸入inta[2][3]for(i=0;i<2;i++)for(j=0;j<3;j++)scanf(“%d〞,&a[i][j]);缺點(diǎn):數(shù)據(jù)相對固定缺點(diǎn):當(dāng)數(shù)組規(guī)模較大時(shí),需要讀入的數(shù)據(jù)會(huì)很多22整理課件例1:在一個(gè)二維數(shù)組中,找出最大的元素值以及最大元素的行下標(biāo)和列下標(biāo),并輸出該數(shù)組#inlcude<stdio.h>main(){inta[3][2],row,col,i,j;for(i=0;i<3;i++)for(j=0;j<2;j++)scanf(“%d〞,&a[i][j]);row=0;col=0;for(i=0;i<3;i++)for(j=0;j<2;j++)if(a[row][col]<a[i][j]){row=i;col=j;}printf(“最大值為a[%d][%d]=%d\n〞,row,col,a[row][col]);}23整理課
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 深入探討2025年注冊土木考試試題及答案
- 電解過程中的化學(xué)變化試題及答案
- 經(jīng)濟(jì)法上試題及答案
- 廣東保密法試題及答案
- 大學(xué)化學(xué)工業(yè)催化劑應(yīng)用試題及答案
- 培養(yǎng)幼兒邏輯思維試題及答案
- 報(bào)關(guān)服務(wù)合同
- 新能源汽車未來發(fā)展路徑試題及答案
- 安全工程師房地產(chǎn)施工安全試題及答案
- 教授培訓(xùn)考試題及答案
- 華大新高考聯(lián)盟2025屆高三4月教學(xué)質(zhì)量測評化學(xué)+答案
- 2025年中國防曬護(hù)理洗發(fā)露市場調(diào)查研究報(bào)告
- 建筑材料租賃標(biāo)準(zhǔn)合同范本7篇
- 2025-2030中國太陽能照明系統(tǒng)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報(bào)告
- 國家電網(wǎng)招聘考試(金融類)專業(yè)考試歷年真題及答案
- 2025年湖北省漢江國有資本投資集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年高考政治三輪沖刺復(fù)習(xí):統(tǒng)編版選擇性必修3《邏輯與思維》開放類主觀題 提分刷題練習(xí)題(含答案)
- 鐵路雨季三防培訓(xùn)課件
- 大學(xué)英語四級考試2024年12月真題(第一套)Part I Writing
- 全國行政區(qū)域身份證代碼表(電子表格版)
- (部編版)語文四年級上冊課外閱讀“天天練”100篇,附參考答案
評論
0/150
提交評論