數(shù)組 1

###一維數(shù)組:

定義:具有一定順序關(guān)系的若干變量的一個(gè)集合稿黄,其中每一個(gè)變量稱為數(shù)組的元素归形;

(1):組成數(shù)組的元素都互不相干的獨(dú)立的變量;

(2):數(shù)組元素的數(shù)據(jù)類型必須相同;

(3):變量之間有一定的順序關(guān)系贱案;

數(shù)組屬于構(gòu)造數(shù)據(jù)類型,一個(gè)數(shù)組可以分解為多個(gè)數(shù)組元素止吐。這些數(shù)組元素可以是基本的數(shù)據(jù)類型或構(gòu)造類型宝踪。因此按數(shù)組元素的類型不同,數(shù)組又可分為數(shù)值數(shù)組碍扔,字符數(shù)組瘩燥,指針數(shù)組,結(jié)構(gòu)數(shù)組等不同;

存儲(chǔ)類型是指:auto(自動(dòng)的),register(注冊(cè)),static(靜態(tài)的),extern(申明)厉膀;若省略,相當(dāng)于auto

數(shù)據(jù)類型可以是任意一種基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型

數(shù)組名是用戶定義的數(shù)組標(biāo)識(shí)符

方括號(hào)中的常量表達(dá)式表示數(shù)據(jù)元素的個(gè)數(shù)二拐,也稱為數(shù)組的長(zhǎng)度服鹅;

對(duì)于數(shù)組的定義,需要注意:

(1):數(shù)組的類型實(shí)際上使指數(shù)組元素的取值類型百新。對(duì)于同一個(gè)數(shù)組企软,其所有元素的數(shù)據(jù)類型是相同的

(2):數(shù)組名不能與其他變量名相同;

(4):方括號(hào)中常量表達(dá)式表示數(shù)組元素的個(gè)數(shù)饭望;

(5):不能在方括號(hào)中用變量來(lái)表示元素的個(gè)數(shù)仗哨,但是可以使符號(hào)常數(shù)或常數(shù)表達(dá)式,如:a[3+2],

(6):允許在同一個(gè)類型說(shuō)明中說(shuō)明多個(gè)數(shù)組和多個(gè)變量铅辞;

###一維數(shù)組的引用:

C語(yǔ)言中規(guī)定了數(shù)組必須逐個(gè)元素引用厌漂,而不能整體引用;通過(guò)數(shù)組下標(biāo)就可以很方便訪問(wèn)數(shù)組中的元素巷挥,但是一定要注意下標(biāo)從0開始桩卵,范圍為0~n-1,其中n為元素個(gè)數(shù)。加入雏节,引用數(shù)組元素時(shí)胜嗓,下標(biāo)越界了,結(jié)果將不可預(yù)料:(可能的結(jié)果)

(1):若越界訪問(wèn)的內(nèi)存空間是空閑的钩乍,程序可能不受影響辞州,任能繼續(xù)運(yùn)行;

(2):若越界訪問(wèn)的空間已經(jīng)被占用寥粹,且寫了很重要的數(shù)據(jù)变过,在這種情況下,若程序執(zhí)行了非法操作涝涤,則程序可能會(huì)異常終止或崩潰媚狰;

(3):若越界訪問(wèn)的空間是空閑的,程序之進(jìn)行了讀操作阔拳,則程序能繼續(xù)運(yùn)行崭孤,但無(wú)法得出正確接果;

###一維數(shù)組初始化:

(1):對(duì)于普通局部數(shù)組糊肠,若定義時(shí)辨宠,沒有初始化,則數(shù)組中元素的值是不確定的货裹;

(2):static 數(shù)組不初始化:對(duì)于全局?jǐn)?shù)組嗤形,若定義時(shí),沒有初始化弧圆,則數(shù)組中元素的值默認(rèn)為0赋兵;

(3):全部初始化:與變量在定義時(shí)初始化一樣,數(shù)組也可以在定義時(shí)初始化墓阀,定義數(shù)組時(shí)毡惜,對(duì)數(shù)組元素初始化,只能寫成一行斯撮,不能換行寫;

(4):全部數(shù)組不初始化:對(duì)于全局?jǐn)?shù)組扶叉,若定義時(shí)勿锅,沒有初始化,則數(shù)組中的元素值默認(rèn)為0枣氧;

(5):部分初始化:數(shù)組定義時(shí)可以對(duì)其中的部分?jǐn)?shù)據(jù)進(jìn)行初始化溢十。當(dāng){ ?}中值的個(gè)數(shù)少于元素個(gè)數(shù)時(shí),只給前面賦值达吞,后面的自動(dòng)賦值為0张弛;

(6):數(shù)組全部賦值:若想對(duì)數(shù)組全部賦值,則可以省略數(shù)組下標(biāo)的常量;

(7):數(shù)組全部初始化為0:int a[10]={0};對(duì)數(shù)組清零還可以使用空函數(shù)memset ,把數(shù)組用0來(lái)填充吞鸭,需要引入頭文件 string.h

例:

int main(){

int a[10];

memset(a,0,sizeof(a));

return 0;

}

可以使用庫(kù)函數(shù)bzero寺董,把數(shù)組清0,需要引用都文件string.h

int main(){

int a[10];

bzero(a,sizeof(a));

return 0;

}

###一維數(shù)組內(nèi)存分配

計(jì)算數(shù)組中元素的個(gè)數(shù):=sizeof(數(shù)組名)/sizeof(數(shù)據(jù)類型)刻剥;

對(duì)數(shù)組名求地址遮咖,其實(shí)就是數(shù)組的第一個(gè)元素的地址,所以可以變相的說(shuō)數(shù)組名就是一個(gè)指針造虏,只不過(guò)是一個(gè)靜態(tài)的指針御吞,一個(gè)數(shù)組內(nèi)存空間是連續(xù)的;


###一維數(shù)組的排序

1.冒泡法:

(1):比較第一個(gè)數(shù)與第二個(gè)數(shù)漓藕,若為逆序a[0]>a[1],則交換陶珠;然后比較第二個(gè)數(shù)與第三個(gè)數(shù);依次類推享钞,直至第n-1個(gè)數(shù)和第n個(gè)數(shù)比較為止--第一趟冒泡排序背率,最終,最大的數(shù)被安置在最后一個(gè)元素位置上嫩与;

(2):對(duì)前n-1個(gè)數(shù)進(jìn)行第二趟冒泡排序寝姿,最終,使次大的數(shù)被安置在第n-1個(gè)元素位置划滋;

(3):重復(fù)上述過(guò)程饵筑,共進(jìn)過(guò)n-1次冒泡排序后,排序結(jié)束处坪;

事例代碼:

#include ?<stdio.h>

#define a N;

int main(){

//第一種

int N,i,j,k;

for(i=0;i<N;i++){

scanf("%d",&a[i]);

}

for(i=0;i<N-1;i++){

? ? for(j=0;j<N-1-i;I++){

? ??????if(a[j]>a[j+1]){

? ??????????????k=a[j];

a[j]=a[j+1];

a[j+1]=k;

}

}

}

printf("\n");

for(i=0;i<N;i++){

printf("%5d",a[i]);

}

//第二種:用sizeofint

int a[ ]={1,23,45,6,58,29},i,j,k,n;

n=sizeof(a)/sizeof(a[0]);

for(i=0;i<n-1;I++){

for(j=0;j<n-1-i;j++){

if(a[j]>a[j+1]){

k=a[j];

a[j]=a[j+1];

a[j+1]=k;

}

}

}

for(i=0;i<n;i++){

printf("%d\n",a[i]);

}

//第三種:循環(huán)剝離

int a[]={1,23,45,6,58,29},ij,k,n,index;

n=sizeof(a)/sizeof(a[0]);

for(i=0;i<n-1;i++){

index=0;

for(j=0;j<n-1-i;j++){

if(a[index]<a[j+1]){

index=j+1;

}

}

k=a[index];

a[index]=a[n-1-i];

a[n-1-i]=k;

}

for(i=0;i<n;i++){

printf("%d\n",a[i]);

}

2.選擇排序法:

(1):首先通過(guò)n-1次比較根资,從n個(gè)數(shù)中找出最小的,將它與第一個(gè)數(shù)進(jìn)行交換———第一次選擇排序同窘,結(jié)果最小的數(shù)被安置在第一個(gè)元素上玄帕;

(2):再通過(guò)n-2次比較,從剩余的n-1個(gè)數(shù)中找出關(guān)鍵次數(shù)小的記錄想邦,將它與第二個(gè)數(shù)交換——第二次選擇排序裤纹;

(3):經(jīng)過(guò)n-1次排序后,排序結(jié)束丧没;

事例代碼:

#include <stdio.h>

int main(){

int a[N],i,j,r,t;

printf("Please input %d numbers\n",N);

for(i=0;i<N;i++)

scanf("%d",&a[i]);

for(i=0;i<N-1;i++){

r=i;

for(j=i+1;j<N;j++){

? if(a[j]<a[r])

r=j;

if(r!=i){

t=a[r];

a[r]=a[i];

a[i]=t;

}

}

printf("the array ?after sort:\n");

for(i=0;i<N;i++)

printf("%5d",a[i]);

prtintf("\n");

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鹰椒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子呕童,更是在濱河造成了極大的恐慌漆际,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夺饲,死亡現(xiàn)場(chǎng)離奇詭異奸汇,居然都是意外死亡施符,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門擂找,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)戳吝,“玉大人,你說(shuō)我怎么就攤上這事婴洼」强樱” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵柬采,是天一觀的道長(zhǎng)欢唾。 經(jīng)常有香客問(wèn)我,道長(zhǎng)粉捻,這世上最難降的妖魔是什么礁遣? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮肩刃,結(jié)果婚禮上祟霍,老公的妹妹穿的比我還像新娘。我一直安慰自己盈包,他們只是感情好沸呐,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呢燥,像睡著了一般崭添。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上叛氨,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天呼渣,我揣著相機(jī)與錄音,去河邊找鬼寞埠。 笑死屁置,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仁连。 我是一名探鬼主播蓝角,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼怖糊!你這毒婦竟也來(lái)了帅容?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤伍伤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后遣钳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扰魂,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了劝评。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姐直。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蒋畜,靈堂內(nèi)的尸體忽然破棺而出声畏,到底是詐尸還是另有隱情,我是刑警寧澤姻成,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布插龄,位于F島的核電站,受9級(jí)特大地震影響科展,放射性物質(zhì)發(fā)生泄漏均牢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一才睹、第九天 我趴在偏房一處隱蔽的房頂上張望徘跪。 院中可真熱鬧,春花似錦琅攘、人聲如沸垮庐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)哨查。三九已至,卻和暖如春置济,著一層夾襖步出監(jiān)牢的瞬間解恰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工浙于, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留护盈,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓羞酗,卻偏偏與公主長(zhǎng)得像腐宋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子檀轨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容