04數(shù)組

[注] 使用數(shù)組的目的祠够,是為了方便地批量定義變量

[前言] c語(yǔ)言中提供了數(shù)組,可以實(shí)現(xiàn)批量地定義相同類型的變量,在我們需要多個(gè)相同類型的變量時(shí)航罗,可以選擇使用數(shù)組

數(shù)組分為兩類:一維數(shù)組,二維數(shù)組

一屁药、一維數(shù)組

1.一維數(shù)組的定義

類型符 數(shù)組名[元素個(gè)數(shù)]粥血;

類型符,可以是int酿箭,char复亏,double等等這些基本數(shù)據(jù)類型,類型符決定了數(shù)組中多個(gè)變量的類型

數(shù)組名缭嫡,數(shù)組名必須符合標(biāo)識(shí)符的命名規(guī)則

元素個(gè)數(shù)缔御,表示數(shù)組一次性定義的變量的個(gè)數(shù)(數(shù)組中包含的元素個(gè)數(shù))

? 例如:int array[4];

2.一維數(shù)組---元素表示

int array[4]妇蛀;

[注] 數(shù)組中元素的下標(biāo)是從0開(kāi)始的

? array[0]

3.一維數(shù)組的特點(diǎn)

  • 數(shù)組中每個(gè)元素的類型都相同

  • 數(shù)組中每個(gè)元素是由數(shù)組名和下標(biāo)唯一確定的

  • 數(shù)組元素下標(biāo)從0開(kāi)始耕突,最大到元素個(gè)數(shù)減1

  • 數(shù)組元素之間是緊密相連的

蓋住數(shù)組名,剩下的部分就是數(shù)組的類型

數(shù)組所占總內(nèi)存空間评架,是由數(shù)組的類型決定的

4.一維數(shù)組---初始化

數(shù)組的初始化的目的眷茁,是為了讓數(shù)組中每個(gè)元素都有一個(gè)確定的值

//完全初始化
int array[4]={1,2,3,4};
//部分初始化
int array[4]={1,2};//編譯器會(huì)優(yōu)先取初始化列表中的值給數(shù)組前面的元素賦值,那些未顯示初始化的元素默認(rèn)初始化為0
//數(shù)組清空
int array[400]={};

5.一維數(shù)組---賦值

//一維數(shù)組---賦值
int array[4]={1,2,3,4};
//數(shù)組不能整體賦值纵诞,只能單個(gè)元素單獨(dú)賦值
array2[0]=10;
array2[1]=array[1];
//通過(guò)循環(huán)上祈,依次讀取數(shù)據(jù)給數(shù)組的每個(gè)元素賦值
for (int i=0; i<4; i++)
{
    scanf("%d",&array[i]);
}

6.數(shù)組下標(biāo)問(wèn)題

數(shù)組元素的下標(biāo)是從0開(kāi)始的

1.數(shù)組下標(biāo)

數(shù)組定義時(shí),數(shù)組的下標(biāo)表示的是數(shù)組中元素的個(gè)數(shù)

2.數(shù)組元素的下標(biāo)

使用數(shù)組元素時(shí)浙芙,下標(biāo)表示的是元素在數(shù)組中的位置

3.數(shù)組下標(biāo)越界問(wèn)題

數(shù)組下標(biāo)使用的合法范圍為:0~元素個(gè)數(shù)-1

數(shù)組下標(biāo)越界可能會(huì)導(dǎo)致程序終止

[注] 在程序運(yùn)行過(guò)程中如果發(fā)生以下報(bào)錯(cuò)信息登刺,一般都是數(shù)組使用越界導(dǎo)致的---Thread 1:signal SIGABRT

7.數(shù)組排序

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

冒泡法

思想:

  • 數(shù)組中待排序數(shù),從左往右嗡呼,依次取兩兩相鄰的元素進(jìn)行比較纸俭,前一個(gè)元素大于后一個(gè)元素,就交換這兩個(gè)元素

  • 第一趟比較完畢時(shí)南窗,所有參與排序元素中最大值放在所有元素的結(jié)尾

  • 重復(fù)以上步驟揍很,直到所有元素排序完畢

//外層循環(huán)廊宪,控制比較的趟數(shù)
for (int i=1; i<10; i++)
{
    //內(nèi)層循環(huán),控制具體某一趟的比較次數(shù)
    for (int j=0; j<10-i; j++)
    {
        if (array[j]<array[j+1])
        {
            //交換相鄰的兩個(gè)元素
            //交換的主角是array[j]和array[j+1]
            int temp;
            temp=array[j];
            array[j]=array[j+1];
            array[j+1]=temp;
        }
    }
}
//打印數(shù)組中的每個(gè)元素
for(int i=0;i<10;i++)
{
    printf("%d ",array[i]);
}

選擇法

思想:

  • 取數(shù)組中未排序元素中最左邊的元素女轿,依次和右邊其他元素進(jìn)行比較箭启,如果前一個(gè)比后一個(gè)大,交換兩個(gè)元素
  • 第一趟比較完畢時(shí)蛉迹,所有參與排序元素中最小元素傅寡,放在所有參與排序元素的最左邊
  • 重復(fù)以上步驟,直到所有元素排序完畢
//外層循環(huán)北救,控制比較的趟數(shù)
for (int i=0; i<9; i++)
{
    //內(nèi)層循環(huán)荐操,控制具體某一趟的比較次數(shù)
    for (int j=i+1; j<10; j++)
    {
        if (array[i]>array[j])
        {
            //交換相鄰的兩個(gè)元素
            //交換的主角是array[i]和array[j]
            int temp;
            temp=array[i];
            array[i]=array[j];
            array[j]=temp;
        }
    }
}
//打印數(shù)組中的每個(gè)元素
for(int i=0;i<10;i++)
{
    printf("%d ",array[i]);
}

二、二維數(shù)組

1.二維數(shù)組的定義

類型符 數(shù)組名[元素個(gè)數(shù)][元素的元素個(gè)數(shù)]珍策;

例子:

int arr[4][4];//這是一個(gè)二維數(shù)組托启,這個(gè)二維數(shù)組具有4個(gè)元素,每個(gè)元素的類型是int[4]

2.二維數(shù)組---元素表示

int arr[4][4];

元素:arr[0],arr[1],arr[2],arr[3]

第一個(gè)元素arr[0]

第二個(gè)元素arr[1]

第三個(gè)元素arr[2]

第四個(gè)元素arr[3]

3.二維數(shù)組---初始化

//完全初始化
int array[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
int array2[3][3] = {{1,2},{4,5,6},{}};
int array3[3][3] = {{},{},{}};
//部分初始化
int array4[3][3] = {{1,2}};

4.其他

二維數(shù)組賦值

數(shù)組不能整體賦值,只能單個(gè)元素單獨(dú)賦值.

array4[0] = array3[0];

二維數(shù)組在使用過(guò)程中,數(shù)組元素下標(biāo)不能越界訪問(wèn).

三攘宙、練習(xí)

1.將一個(gè)5元素?cái)?shù)組中元素屯耸,相鄰的兩兩相加,找出最大的組合;打印出是哪兩個(gè)元素

int a[5],sum=0,b=0,x=0,y=0;
for (int i=0; i<5; i++)
{
    scanf("%d",&a[i]);
}
for (int i=0; i<4; i++)
{
    sum=a[i]+a[i+1];
    if (sum>b)
    {
        b=sum;
        x=a[i];
        y=a[i+1];
    }
}
printf("%d %d\n",x,y);

2.輸入10個(gè)數(shù)蹭劈,相鄰的兩個(gè)絕不相同疗绣。輸出每個(gè)遞增遞減序列,并輸出有多少個(gè)這種序列

1 2 3 2 4 5 6 7 6 3

1 2 3

3 2

2 4 5 6 7

7 6 3

總共:4

#include <stdio.h>

int main(int argc, const char * argv[])
{
    int a[10],n=1;
    for (int i=0; i<10; i++)
    {
        scanf("%d",&a[i]);
    }
    for (int i=1; i<9; i++)
    {
        if ((a[i-1]-a[i]<0&&a[i]-a[i+1]<0)||(a[i-1]-a[i]>0&&a[i]-a[i+1]>0))
        {
            printf("%d %d ",a[i-1],a[i]);
        }
        else
        {
            printf("%d %d\n",a[i-1],a[i]);
            n++;
        }
    }
    printf("\n總共:%d\n",n);
    return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末铺韧,一起剝皮案震驚了整個(gè)濱河市多矮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哈打,老刑警劉巖塔逃,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異料仗,居然都是意外死亡湾盗,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門罢维,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)淹仑,“玉大人丙挽,你說(shuō)我怎么就攤上這事肺孵。” “怎么了颜阐?”我有些...
    開(kāi)封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵平窘,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我凳怨,道長(zhǎng)瑰艘,這世上最難降的妖魔是什么是鬼? 我笑而不...
    開(kāi)封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮紫新,結(jié)果婚禮上均蜜,老公的妹妹穿的比我還像新娘。我一直安慰自己芒率,他們只是感情好囤耳,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著偶芍,像睡著了一般充择。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上匪蟀,一...
    開(kāi)封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天椎麦,我揣著相機(jī)與錄音,去河邊找鬼材彪。 笑死观挎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的段化。 我是一名探鬼主播键兜,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼穗泵!你這毒婦竟也來(lái)了普气?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤佃延,失蹤者是張志新(化名)和其女友劉穎现诀,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體履肃,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仔沿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了尺棋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片封锉。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖膘螟,靈堂內(nèi)的尸體忽然破棺而出成福,到底是詐尸還是另有隱情,我是刑警寧澤荆残,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布奴艾,位于F島的核電站,受9級(jí)特大地震影響内斯,放射性物質(zhì)發(fā)生泄漏蕴潦。R本人自食惡果不足惜像啼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望潭苞。 院中可真熱鬧忽冻,春花似錦、人聲如沸此疹。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)秀菱。三九已至振诬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間衍菱,已是汗流浹背赶么。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脊串,地道東北人辫呻。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像琼锋,于是被迫代替她去往敵國(guó)和親放闺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

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

  • 第四天 數(shù)組【悟空教程】 第04天 Java基礎(chǔ) 第1章數(shù)組 1.1數(shù)組概念 軟件的基本功能是處理數(shù)據(jù)缕坎,而在處理數(shù)...
    Java幫幫閱讀 1,598評(píng)論 0 9
  • 數(shù)組在程序設(shè)計(jì)中怖侦,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來(lái)谜叹。這些按序排列的同類數(shù)據(jù)元素的集合稱...
    朱森閱讀 3,919評(píng)論 2 13
  • 1 數(shù)組No11 數(shù)組:存放一組相同類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu) 數(shù)組本身是引用數(shù)據(jù)類型匾寝,數(shù)組中的元素可以是基本數(shù)據(jù)類型...
    征程_Journey閱讀 641評(píng)論 0 1
  • 謹(jǐn)記 每個(gè)人心中都有一片海,自己不揚(yáng)帆荷腊,沒(méi)人幫您啟航艳悔,久了就是一片死海。人生女仰,就是一場(chǎng)自己與自己的較量:讓積極打敗...
    長(zhǎng)風(fēng)留言閱讀 7,952評(píng)論 6 10
  • 當(dāng)我們溝通的時(shí)候猜年,我們溝什么?當(dāng)我們演講的時(shí)候疾忍,我們?cè)谥v什么乔外? 講并不是目的,而是手段锭碳,讓別人認(rèn)同自己的觀點(diǎn)才是目...
    逄格亮閱讀 230評(píng)論 0 0