第8講-一維數(shù)組和二維數(shù)組課件_第1頁
第8講-一維數(shù)組和二維數(shù)組課件_第2頁
第8講-一維數(shù)組和二維數(shù)組課件_第3頁
第8講-一維數(shù)組和二維數(shù)組課件_第4頁
第8講-一維數(shù)組和二維數(shù)組課件_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第8講

一維數(shù)組和二維數(shù)組一、一維數(shù)組1、一維數(shù)組的定義2、一維數(shù)組元素的引用3、一維數(shù)組的初始化二、二維數(shù)組1、二維數(shù)組的定義和引用2、二維數(shù)組的初始化第8講一維數(shù)組和二維數(shù)組一、一維數(shù)組數(shù)學(xué)中的數(shù)列:a1,a2,a3,···,ai,···,anC程序中數(shù)組:a[0],a[1],a[2],···,a[i-1],···a[n-1]1、數(shù)組:數(shù)目固定、類型相同的若干變量的有序集合。2、數(shù)組元素:數(shù)組中的每一個數(shù)據(jù)。3、性質(zhì):

1)數(shù)組中的每一個元素都屬于同一個數(shù)據(jù)類型。

2)在內(nèi)存中數(shù)組占有一段連續(xù)的存儲空間?;靖拍睿?P91)數(shù)學(xué)中的數(shù)列:a1,a2,a3,···,ai,···,anC一、一維數(shù)組(P91)1、一維數(shù)組的定義定義的格式:類型說明符數(shù)組名[長度],···;說明:1)類型說明符:表明該數(shù)組所屬類型,即數(shù)組元素的類型。2)數(shù)組名:數(shù)組的名稱,其命名方法同變量名。例如:inta[5];含義:定義一個數(shù)組變量a,它包含5個變量元素。

a[0],a[1],a[2],a[3],a[4]一、一維數(shù)組(P91)1、一維數(shù)組的定義定義的格式:類引用方式:數(shù)組名[下標(biāo)]2、一維數(shù)組元素的引用(P93)說明:

1)下標(biāo)的最小值為0,最大值為整常量表達(dá)式-1。

2)數(shù)組必須先定義后使用。

3)數(shù)組元素只能逐個被引用,不能一次引用整個數(shù)組(字符數(shù)組除外)。

4)對數(shù)組中所有元素逐個引用時,通??墒褂醚h(huán)結(jié)構(gòu)。引用方式:數(shù)組名[下標(biāo)]2、一維數(shù)組元素的引用(P9寫出下面程序的結(jié)果。(一維數(shù)組的使用)#include<stdio.h>voidmain(){ inta[10],s,i; s=0;

for(i=0;i<=9;i++) a[i]=i; for(i=0;i<=9;i++) s=s+a[i]; printf("s=%d\n",s);}執(zhí)行結(jié)果:

s=45寫出下面程序的結(jié)果。(一維數(shù)組的使用)#include寫出下面程序的結(jié)果。(一維數(shù)組的使用)#include<stdio.h>voidmain(){ inta[10],i; a[0]=a[1]=1;

for(i=2;i<=7;i++) a[i]=a[i-1]+a[i-2]; for(i=0;i<=7;i++) printf("%4d",a[i]);}執(zhí)行結(jié)果:

1123581321寫出下面程序的結(jié)果。(一維數(shù)組的使用)#include例統(tǒng)計(jì)全班32名同學(xué)某門功課的平均成績,找出并輸出最高分。main(){ inti,sum,max,a[32]; floataverage;

for(i=0;i<32;i++) scanf("%d",&a[i]);/*輸入數(shù)組元素的值*/

for(sum=0,i=0,max=a[0];i<32;i++) { sum+=a[i]; if(a[i]>max)max=a[i]; } average=(float)sum/32; printf("Average=%.2f,MAX=%d\n",average,max);}例統(tǒng)計(jì)全班32名同學(xué)某門功課的平均成績,找出并輸出最高分。1)數(shù)組的初始化:

指定義數(shù)組時對數(shù)組元素賦以初值。3、一維數(shù)組的初始化(P92)2)格式:類型符數(shù)組名[表達(dá)式]={初值表};3)數(shù)組初始化有三種情況:給全部元素賦初值。給部分元素賦初值。給全部元素賦初值時可不指定數(shù)組的長度。1)數(shù)組的初始化:3、一維數(shù)組的初始化(P92)2)全部元素賦初值:例如inta[8]={0,1,2,3,4,5,6,7};部分元素賦初值:例如inta[8]={0,1,2,3,4};a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]01234567a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]01234000全部元素賦初值時可不指定數(shù)組的長度:例int

a[]={0,1,2,3,4,5,6,7};a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]01234567全部元素賦初值:例如inta[8]={0,1,2,例寫出下面程序的執(zhí)行結(jié)果。#include<stdio.h>voidmain(){ inta[6]={1,2,3}; inti,j; for(i=3;i<6;i++) a[i]=a[i-3]+a[i-2]+a[i-1]; for(i=0;i<6;i++) printf("%10d",a[i]);}執(zhí)行結(jié)果:

11361120例寫出下面程序的執(zhí)行結(jié)果。#include<stdio.#include"stdio.h"#defineN5main(){ inta[]={1,2,3,4,5},temp,i; for(i=0;i<N;i++) printf("%4d",a[i]); for(i=0;i<N/2;i++) {temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;} for(i=0;i<N;i++) printf("%4d",a[i]);}例將一個數(shù)組中的值按逆序重新存放。#include"stdio.h"例將一個數(shù)組中二、二維數(shù)組(P96)1、二維數(shù)組的定義格式:

類型說明符數(shù)組名[行數(shù)][列數(shù)];說明:在C語言中二維數(shù)組的元素按行優(yōu)先順序存放。例如:inta[2][3];含義:定義一個數(shù)組變量a,它包含2行,每行有3個數(shù)組元素。

a[0][0],

a[0][1],

a[0][2]a[1][0],

a[1][1],

a[1][2]二、二維數(shù)組(P96)1、二維數(shù)組的定義格式:說明:在C語注意:0≤下標(biāo)1≤行數(shù)-1;0≤下標(biāo)2≤列數(shù)-1。2、二維數(shù)組的引用

(P99)格式:數(shù)組名[下標(biāo)1][下標(biāo)2]例如:intm[2][3];則合法引用格式為:m[0][0]m[0][1]m[0][2]m[1][0]m[1][1]m[1][2]注意:2、二維數(shù)組的引用(P99)例如:intm例寫出下面程序的執(zhí)行結(jié)果。#include"stdio.h"voidmain(){inta[5][5]={0},i,j;for(i=0;i<5;i++)for(j=0;j<5;j++) if(i==j||i+j==4)a[i][j]=1;for(i=0;i<5;i++) {for(j=0;j<5;j++) printf("%2d",a[i][j]); printf("\n");}}例寫出下面程序的執(zhí)行結(jié)果。#include"stdio.說明:二維數(shù)組的初始化有三種情況。給全部元素賦初值。給部分元素賦初值。給二維數(shù)組的全部元素賦初值,可以不指定第一維的長度,但第二維的長度不能省略。2、二維數(shù)組的初始化(P97)格式:

類型符數(shù)組名[表達(dá)式1][表達(dá)式2]={初值表};說明:二維數(shù)組的初始化有三種情況。2、二維數(shù)組的初始化二維數(shù)組初始化舉例1:給全部元素賦初值。

例如

int[][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};

或?qū)懗?inta[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};11109876543210a[1][2]二維數(shù)組初始化舉例1:給全部元素賦初值。1110987二維數(shù)組初始化舉例2:

給部分元素賦初值(沒有賦初值的元素的值為0):例1inta[3][4]={{0,1},{4,5,6},{8,9,10,11}};

11109806540010a[1][2]例2

intb[3][4]={0,1,2,3,4,5,6};000006543210a[1][2]二維數(shù)組初始化舉例2:給部分元素賦初值(沒有賦初值的元素的二維數(shù)組初始化舉例3:給二維數(shù)組的全部元素賦初值,可以不指定第一維的長度,但第二維的長度不能省略。例

inta[][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};

或?qū)懗?inta[][4]={0,1,2,3,4,5,6,7,8,9,10,11};11109876543210a[1][2]二維數(shù)組初始化舉例3:給二維數(shù)組的全部元素賦初值,可以不例題:矩陣的轉(zhuǎn)置。分析:將矩陣Am*n行列互換后,得一新矩陣為Bn*m。它們的元素對應(yīng)關(guān)系為:ai,j=bj,i#include"stdio.h"main(){ inta[4][4]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; inti,j,b[4][4]; for(i=0;i<4;i++) for(j=0;j<4;j++) b[j][i]=a[i][j]; for(i=0;i<4;i++) { for(j=0;j<4;j++) printf("%7d",b[i][j]); printf("\n");}}例題:矩陣的轉(zhuǎn)置。分析:將矩陣Am*n行列互換后,得一新矩陣?yán)}打印楊輝三角形。(要求打印N行)說明:三角形是(a+b)的n次冪展開后各項(xiàng)的系數(shù)。例如:(a+b)的0次冪展開后各項(xiàng)的系數(shù)為:1(a+b)的1次冪展開后各項(xiàng)的系數(shù)為:1,1(a+b)的2次冪展開后各項(xiàng)的系數(shù)為:1,2,1(a+b)的3次冪展開后各項(xiàng)的系數(shù)為:1,3,3,1(a+b)的4次冪展開后各項(xiàng)的系數(shù)為:1,4,6,4,1例題打印楊輝三角形。(要求打印N行)說明:三角形是(a+分析:楊輝三角各行的系數(shù)有如下規(guī)律 (1)各行第一個數(shù)都是1; (2)各行最后一個數(shù)為1; (3)從第3行起,除上面指出的第一個數(shù)和最后一個數(shù)外,其余各數(shù)是上一行同列和前一列兩個數(shù)之和。11,2,11,3,3,11,4,6,4,1a[3][2]=a[2][1]+a[2][2]a[4][4]=a[3][3]+a[3][4]表示為通式即:a[i][j]=a[i-1][j]+a[i-1][j-1]分析:楊輝三角各行的系數(shù)有如下規(guī)律1a[3][2]=a[2]參考程序:#defineN10

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論