




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
一維數(shù)組的定義與初始化1.一維數(shù)組的定義類型說明符數(shù)組名[正整型常量表達(dá)式]
;類型說明符:數(shù)組的類型。數(shù)組名同變量名命名規(guī)則相同。常量表達(dá)式指明數(shù)組中元素個(gè)數(shù),必須大于零??梢允菙?shù)值常量、符號常量和字符常量。說明floatmark[100]; char str[200];int a[10];例如:1.一維數(shù)組的定義存儲(chǔ)學(xué)生成績用實(shí)型數(shù)組例如:mark[100],存儲(chǔ)一行文字用字符數(shù)組str[200],存儲(chǔ)一個(gè)4*6的矩陣用二維整型數(shù)組a[4][6]。其中mark、str、a是數(shù)組名。方括號內(nèi)是數(shù)組的長度。下標(biāo)的個(gè)數(shù)稱為數(shù)組的維數(shù),mark、str是一維數(shù)組、a是二維數(shù)組。數(shù)組的成員稱為數(shù)組元素。數(shù)組元素的類型稱為該數(shù)組的基類型。數(shù)組mark的基類型是float,數(shù)組str的基類型是char。1.一維數(shù)組的定義說明:(1)數(shù)組名后是用方括號而不是圓括號。(2)數(shù)組定義中的常量表達(dá)式表示數(shù)組元素個(gè)數(shù)。必須是大于零的常量。如:inta[0],d(6);/*錯(cuò)誤*/intb[-8];/*錯(cuò)誤*/intc[2+3];/*正確*/1.一維數(shù)組的定義(3)C語言中不允許使用變量對數(shù)組的大小進(jìn)行定義。數(shù)組的說明語句必須在可執(zhí)行語句之前。#define N 5int a[N];int n;scanf(“%d” , &n );{int
a[n];……}int
n=10,a[n];2.一維數(shù)組的初始化在數(shù)組定義時(shí)為數(shù)組元素賦初值稱為數(shù)組初始化。(1)對全部元素初始化。方法:將初值依次寫在花括號{}內(nèi)。如:
inta[5]={2,4,6,
8,10
};存儲(chǔ)形式:存儲(chǔ)單元2.一維數(shù)組的初始化(2)給數(shù)組中部分元素賦初值,其他元素按零值處理。例int
a[9]={1,2};則a[0]=1, a[1]=2,a[2]~a[8]值全為0。(3)對數(shù)組元素全部賦值可以不指定長度。例int a[]={0,1,2,3,5};等價(jià)于:int
a[5]={0,1,2,3,5};(4)一維數(shù)組賦初值的個(gè)數(shù)不能超過數(shù)組總元素的個(gè)數(shù)。例int
a[3]={1,2,3,4};語法錯(cuò)!感謝觀看一維數(shù)組的引用引用C語言規(guī)定,只能引用單個(gè)數(shù)組元素,不能一次引用整個(gè)數(shù)組。數(shù)組元素的引用形式: 數(shù)組名[下標(biāo)] 如a[3]下標(biāo)指出在數(shù)組中第幾個(gè)元素下標(biāo)可以是整型常量、整型變量或整型表達(dá)式。如:a[3]=a[0] +a[i+1];下標(biāo)的值是數(shù)組元素的序號,且從0開始,直到n-1.int a[10], 說明數(shù)組a一共有10個(gè)元素,起始值是0。數(shù)組a的10個(gè)元素分別是:a[0]、a[1]、…、a[9]。注意區(qū)分?jǐn)?shù)組的定義和數(shù)組元素的引用。一維數(shù)組的輸入輸出可以對數(shù)組中任何一個(gè)元素進(jìn)行單獨(dú)的輸入輸出,每個(gè)元素等同于一個(gè)普通變量。數(shù)組的引用離不開循環(huán)。將數(shù)組的下標(biāo)作為循環(huán)變量,通過循環(huán),就可以對數(shù)組的所有元素逐個(gè)進(jìn)行處理。(1)數(shù)組元素輸入main(){ charas[26];inti
;for(i=0;i<26;i++)scanf("%c",&as[i]);…...}(2)⑵
數(shù)組元素輸出main(){charas[26];inti
;for(i=0;i<26;
i++)printf("%c",as[i]);…...}控制下標(biāo)是關(guān)鍵引用數(shù)組元素的注意事項(xiàng):數(shù)組中的每個(gè)元素在功能上等價(jià)于一個(gè)一般的變量x。例如:輸入100個(gè)學(xué)生成績,并求出總成績。float x, sum=0; 簡單變量for (i=0; i<100; i++){ scanf(”%f”, &x);sum += x;}float m[100],sum=0;for ( i=0; i<100; i++ ){ scanf(”%f”, &m[i]);sum += m[i];}數(shù)組方式優(yōu)點(diǎn):數(shù)據(jù)重用數(shù)據(jù)有序856385148summ[0]m[1]m[2]m[99]82
85
63
78 9085148226316sum
7950827950下標(biāo)與地址的關(guān)系[]為下標(biāo)運(yùn)算符,數(shù)組名、數(shù)組元素是兩種不同性質(zhì)的數(shù)據(jù)。數(shù)組名是數(shù)組的首地址,是一個(gè)地址常量。數(shù)組元素則是數(shù)值。引用數(shù)組元素時(shí),根據(jù)首地址和下標(biāo),自動(dòng)計(jì)算出該元素的實(shí)際地址,取出該地址的內(nèi)容進(jìn)行操作。如引用
mark[2]:(1)計(jì)算2000+2*4=2008(2)取出2008的內(nèi)容2000H86.5mark[0]2004H92.0mark[1]2008H77.5mark[2]200CH52.0mark[3]218CH94.0mark[99]如何使兩個(gè)數(shù)組的值相等解決方法:方法1:
逐個(gè)元素賦值b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];方法2:
通過循環(huán)賦值int i;for
(i=0;i<4;i++){b[i]=
a[i];}原因:數(shù)組名b表示數(shù)組的首地址,即b[0]的地址,其值不可改變,不能被賦值!main(){inta[4]={1,2,3,4},
b[4];b=
a;}如何使兩個(gè)數(shù)組的值相等從鍵盤上輸入10個(gè)實(shí)型數(shù)存入數(shù)組,然后按輸入順序的逆序輸出這10個(gè)數(shù)。例#include
<stdio,h>main(){float
a[10];int
i;for(i=0;i<10;
i++)scanf("%f",&a[i]);for(i=9;i>=0;i--)printf("%10.2f",a[i]);}對數(shù)組元素賦值逆序輸出數(shù)組元素[例] 從鍵盤上輸入10個(gè)數(shù),求出其中最大值并輸出。算法分析:采用打擂臺的方法,先把10個(gè)數(shù)存在數(shù)組中。任意指定某數(shù)為擂主,然后擂主依次與其他數(shù)比較,若某數(shù)大于擂主,則該數(shù)為擂主。循環(huán)結(jié)束,擂主一定是最大的數(shù)。例:
#include<stdio.h
>main(){int
a[10],i,max;for(i=0;i<10;i++)scanf("%d",&a[i]);max=a[0];for(i=1;i<10;i++)if(a[i]>max)
max=a[i];printf("max=%d\n",max);}指定第1個(gè)元素為擂主感謝觀看二維數(shù)組的定義與初始化1.二維數(shù)組的定義定義二維數(shù)組的一般方式:類型說明符
數(shù)組名[常量表達(dá)式1][常量表達(dá)式2];第一個(gè)下標(biāo)表示行數(shù)第二個(gè)下標(biāo)表示列數(shù)Inta[3][3];例a
a00a01a02a10a11a12a20a21a221.二維數(shù)組的定義存儲(chǔ)形式:二維數(shù)組在內(nèi)存中按行的順序存放,即先存放第一行的元素,再存放第二行的元素。
例:Floata[3][4];1.二維數(shù)組的定義
說明:二維數(shù)組除了維數(shù)比一維數(shù)組多一維外,其它性質(zhì)與一維數(shù)組全部類似。二維數(shù)組定義中的常見錯(cuò)誤①
int
a[0][3];用于定義數(shù)組長度的常量表達(dá)式的值必須是大于0的正整數(shù)。②
int i=3 , j=4 ;
int a[i][j];定義數(shù)組元素的個(gè)數(shù)必須使用常量表達(dá)式,而不能使用變量。2.二維數(shù)組的初始化分行給二維數(shù)組賦初值。(1)將所有數(shù)據(jù)寫在一個(gè){
}內(nèi),按順序賦值。(2)如:int
a[2][3]={{2,3,1},{1,2,3}};
2
3
1
a
1 2 3即按數(shù)組元素在內(nèi)存中排列的順序賦初值。如:int
a[2][3]={2,3,1,1,2,3};2.二維數(shù)組的初始化對部分元素賦值(3)inta[3][3]={{1},{
},{0,0,1}};相當(dāng)矩陣int
a[2][3]={{5,6},{7,8}};相當(dāng)矩陣:
5 6 0
8
70
0
5 6 7
8 0
int
a[3][3]={{1},{0,1},{0,0,1}};相當(dāng)矩陣:int
a[2][3]={5,6,7,8};相當(dāng)矩陣:1000100011000000012.二維數(shù)組的初始化對數(shù)組全部元素賦初值(4)第一個(gè)下標(biāo)可省略,但第二個(gè)下標(biāo)不可省略。
例:a[3][4]={{0,1,3,1},{2,1,0,2},{1,1,2,0}};可寫成a[][4]={0,1,3,1,2,1,0,2,1,1,2,0};感謝觀看二維數(shù)組的引用
二維數(shù)組的引用與引用一維數(shù)組元素一樣,也用下標(biāo)法引用二維數(shù)組元素。
二維數(shù)組元素表示形式:數(shù)組名[下標(biāo)1][下標(biāo)2]下標(biāo)1和下標(biāo)2是整型常量、整型變量或整型表達(dá)式。其編號從0開始的。注意下標(biāo)不要越界!276.3.2二維數(shù)組的引用例:若
inta[2*5][3*4],i=15;則使用
a[3*3][0],a[1][i-5]都是合法的。說明:數(shù)組名a代表的是數(shù)組a在內(nèi)存中的首地址,可以用數(shù)組名a來代表數(shù)組元素a[0][0]的地址。數(shù)組名是常量,不可對它賦值。286.3.2二維數(shù)組的引用inta[2][3],i,j;for(i=0;i<2;i++)for(j=0;j<3;
j++)scanf("%d",
&a[i][j]);29inta[2][3],i,j;for(i=0;i<2;i++)for(j=0;j<3;
j++)printf("%5d",
a[i][j]);二維數(shù)組的輸入和輸出:采用兩重循環(huán)方式進(jìn)行。1. 二維數(shù)組的輸入 2. 二維數(shù)組的輸出6.3.2二維數(shù)組的引用感謝觀看二維數(shù)組程序示例[例1]
將一個(gè)矩陣a
2×3轉(zhuǎn)置存到另一個(gè)矩陣b
3×2中。
3 6
1 2 3
4 5 6
a
,
b
2
5
1 4
分析:用數(shù)組a、b分別代表矩陣a、b;a
數(shù)組的行數(shù)必須要等于b
數(shù)組的列數(shù)。執(zhí)行:b[j][i]=a[i][j];
即可完成轉(zhuǎn)換。涉及到兩個(gè)下標(biāo)的,一般用兩重循環(huán)。6.3.3二維數(shù)組程序示例#include<stdio.h
>intmain(
){int
a[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;printf(“arraya:\n”);for(i=0;i<2;
i++){ for(j=0;j<3;
j++){printf("%5d",
a[i][j]);b[j][i]=a[i][j];
}printf("\n");}printf("arrayb:
\n");for(i=0;i<3;
i++){ for(j=0;j<2;j++)printf("%5d",b[i][j]);printf("\n");
}return
0;}
運(yùn)行結(jié)果如下:array
a:1 2 34 5 6array
b:1 42 53 633#include<stdio.h
>intmain(
){ inti,j,row=0,colum=0,
max;int
a[3][4]={{1,2,3,4},{9,7,4,6},{-1,2,0,8}};max=a[0][0];for(i=0;i<=2;i++)for(j=0;j<=3;
j++)if(
a[i][j]>max){
max=a[i][j]; row=i; colum=j;}printf("max=%d,row=%d,colum=%d\n",max,row,colum);return0;}運(yùn)行結(jié)果:
max=9,row=1,colum=0[例2] 求3×4矩陣中最大元素的值及其所在行和列號。
8
1 2
1 2 3 4
a
9 7 4 6
0[例3] 求方陣A4*4的轉(zhuǎn)置陣,并將該轉(zhuǎn)置陣輸出array
a:1 2 3 45 6 7 89 10 11 1213 14 15 16rotated
a:1 5 9 132 6 10 143 7 11 154 8 12 16矩陣轉(zhuǎn)置算法1:for(i=0;i<4-1;i++)for(j=i+1;j<4;j++){t=a[i][j];a[i][j]=a[j][i];a[j][i]=t; }矩陣轉(zhuǎn)置算法2:for(i=1;i<4;i++)for(j=0;j<i;j++){ t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}程序運(yùn)行演示感謝觀看字符數(shù)組的定義用來存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組。 C語言用字符數(shù)組存放字符串,字符數(shù)組中的各元素依次存放字符串的各字符。格式:char
數(shù)組名[常量表達(dá)式]例:char
c[6];C 數(shù)組具有6個(gè)元素,可以存放長度等于或小于5的字符串。6.4.1字符數(shù)組的定義CHINA\039強(qiáng)調(diào):字符串實(shí)際占有單元的數(shù)量等于字符串長度+1。定義時(shí)應(yīng)注意考慮元素總個(gè)數(shù)應(yīng)比實(shí)際長度多1。字符串的存儲(chǔ)例:char
c[6]=“CHINA”;該數(shù)組在計(jì)算機(jī)中存儲(chǔ)的形式為串長=5c[0] c[1] c[2] c[3] c[4] c[5]感謝觀看字符數(shù)組的初始化CHINA\042c[0]c[1]c[2]c[3]c[4]c[5]1.用單個(gè)字符對字符數(shù)組初始化例如:charc[6]={‘C’,‘H’,‘I’,‘N’,‘A’,’\0’};把5個(gè)字符分別賦給c[0]到c[4]。在內(nèi)存中存放情況:串長=56.4.2字符數(shù)組的初始化說明:43(1)
初值的個(gè)數(shù)不能超過數(shù)組元素的個(gè)數(shù),否則語法錯(cuò)初值的個(gè)數(shù)小于數(shù)組長度,系統(tǒng)自動(dòng)添入結(jié)束符‘\0’
初值的個(gè)數(shù)與數(shù)組元素相等,定義時(shí)可省略長度
因字符串常量自動(dòng)加\0,因此常人為地在字符數(shù)組后加一個(gè)‘\0’。2. 用字符串常量對字符數(shù)組初始化:[例]44(1)charch[6]={"CHINA"};(2)charch[6]="CHINA";/* 省略 { } */(3)charch[]
="CHINA";/*
省略長度值
*/(4)chard[12]="How are you"與 char
d[]={‘H’,’o’,’w’,‘
‘,’a’,’r’,’e’,‘
‘,’y’,’o’,’u
溫馨提示
- 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年智能手表購銷合同
- 2025物業(yè)管理合同范本匯編
- 2025電競酒店裝修施工合同范本
- 2025外貿(mào)實(shí)務(wù)中合同翻譯要點(diǎn)解析
- 如何預(yù)防機(jī)械傷害事故
- 辦公培訓(xùn)專題:技能概要
- 2025商用房租賃合同范本
- 公有企業(yè)勞動(dòng)合同書范本參考
- 電梯安全培訓(xùn)
- 企業(yè)培訓(xùn)之安全生產(chǎn)管理培訓(xùn)教材
- 閱讀提取信息課件
- 2025年河南省中考數(shù)學(xué)二輪復(fù)習(xí)壓軸題:動(dòng)態(tài)幾何問題專練
- 《知識產(chǎn)權(quán)保護(hù)》課件
- 2025-2030中國制造運(yùn)營管理(MOM)軟件行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報(bào)告
- 江蘇省2024年中職職教高考文化統(tǒng)考烹飪專業(yè)綜合理論真題試卷
- 市政工程施工部署與資源配置計(jì)劃
- 2025年理化檢驗(yàn)面試試題及答案
- 11.1 化學(xué)與人體健康(課件)-2024-2025學(xué)年九年級化學(xué)人教版下冊
- 生物制藥質(zhì)量標(biāo)準(zhǔn)研究-深度研究
- 污水處理廠工程設(shè)備安裝施工方案及技術(shù)措施
- 2025年電力人工智能多模態(tài)大模型創(chuàng)新技術(shù)及應(yīng)用報(bào)告-西安交通大學(xué)
評論
0/150
提交評論