C語言系列(10) 陣列(01)

2021-09-26 10:56:39 字數 4597 閱讀 3092

一、為什麼要有陣列

乙個班級30個人,需要定義變數儲存各學生的成績?

int number1;

int number2;

int number3;..

....

int number30;

我們現在所學的知識,顯然只能這樣定義。

但是陣列就能解決我們這個問題,可以只定義乙個變數,用來儲存多個相同型別的資料。

二、什麼是陣列

復合資料型別的一種;是乙個可以儲存相同型別元素的順序集合。

三、一維陣列

語法:

資料型別 陣列名[元素個數];

如:

//即表示定義了乙個陣列名叫number,可以儲存30個int型別資料的陣列。

int numbers[30]

;

注意:「陣列名」符合變數名的命名規則;「元素個數」必須是正整數常量。

初始化:有如下幾種方式

//1.初始化所有元素

float price[5]

=;//2.初始化前n個元素

int value[5]

=;//3.所有元素初始化為0

int size[10]

=;//4.元素個數即為初始化的個數,即6

char name=

;

注意:大括號 {} 之間的值的數目不能大於我們在陣列宣告時在方括號 中指定的元素數目。

陣列儲存方式:

如上述price:

陣列元素

陣列元素可以通過陣列名稱索引進行訪問。

元素的索引是放在方括號內,跟在陣列名稱的後邊。例如:

price[0]

;//表示第乙個元素

printf

("%f\t"

, price[0]

);//列印第乙個元素的值

price[0]

=4.5

;//修改第乙個元素的值

printf

("%f\t"

, price[0]

);

上述列印結果:5.0 4.5**注意:**c

一維陣列大小

使用sizeof可以得到陣列的大小

char name=

;printf

("%d\n"

,sizeof

(name));

列印結果為:6

int size[10]

=;printf

("%d\n"

,sizeof

(size)

);

列印結果為:40陣列大小的計算公式為:資料型別大小*元素個數

利用該公式可以迴圈列印陣列元素:

float price[5]

=;for( i =

0; i <

sizeof

(price)

/sizeof

(float

); i++

)

例:輸入5位同學的成績,並求其平均值

#include

intmain()

;printf

("請輸入5個成績:");

for(i =

0; i <

5; i++

)//迴圈輸入成績

for(i =

0; i <

5; i++

)//迴圈累加成績

printf

("平均值是:%.2f\n"

, sum /5)

;//計算平均值

return0;

}

互動輸出如下:

請輸入5個成績:90

8070

6050

平均值是:70.00

四、字串

在c語言中沒有字串型別,都是由陣列指標完成字串的操作。

如,一下兩種:

char name=

;//字元陣列

char name1=

"binson"

;//字串

這兩者的區別?

printf

("%d\t"

,sizeof

(name));

printf

("%d\n"

,sizeof

(name1)

);

列印結果:6 7第二種方式初始化,系統會預設在其最後新增'\0'作為字串的結束符。所以大小比第一種方式多1等價於:

char name1=

;

字串輸出:

char ch=

"i am a student"

;printf

("%s\n"

, ch)

;puts

(ch)

;//puts也能輸出乙個字串

均輸出:i am a student

輸入字串:

char ch[

100]

;scanf

("%s"

, ch)

;printf

("%s\n"

, ch)

;

輸入:hello,world

輸出:hello,world

char ch[

100]

;char c;

getchar

(c);

//輸入乙個字元

gets

(ch)

;//輸入乙個字串

例:輸入一段英文本母的字串,將其中的大寫字元轉換成小寫字元。

char charr[

1024]=

;printf

("請輸入一段字串:\n");

gets

(charr)

;//visual studio中使用 gets_s

//迴圈索引陣列立面的元素,判斷其是否為大寫字母,如果是則將其修改為小寫。

for(

int i =

0; i < charr[i]

!='\0'

; i++)}

puts

(charr)

;

互動輸出:

請輸入一段字串:

hello,world

hello,world

**總結:**陣列是在c語言中非常重要的一種複合型資料型別,其元素可以是基礎資料型別,也可以是其他復合資料型別(結構體、指標、陣列、函式)。各位童鞋先把陣列的基礎知識掌握,才好往下接觸更深更難的組合。

下一節,陣列應用

練習:

1、有乙個陣列,元素為,將其元素各自進行n(n為各元素本身的值)次冪後存入該陣列裡,並輸出。

2、程式設計:某個組織,用英文本母代替一些特殊的數字,用於暗語交流。

先定義如下暗語:a->110,b->120,c->119,d->114,e->520,f->1314。

現要求輸入字母,輸出對應的數字,用陣列實現,

如:e520

3、有字串:「lord i'm one, lord i'm two, lord i'm three, lord i'mfour, lord i'm five hundred miles away from home.」在這個字串中,出現lord單詞的次數。

4、乙隻兔子躲進了10個環形分布的洞中的乙個。

狼在第乙個洞中沒有找到兔子,就隔乙個洞,到第3個洞去找;

也沒找到,就隔2個洞,到第6個洞去找;

以後每次多乙個洞去找兔子......這樣下去,如果一直找不到兔子,請問兔子可能在哪個洞中?

ndk系列 C語言01

define crt secure no warnings 巨集定義 引入標頭檔案 只有函式的宣告,編譯時會去找到函式的實現 include include includevoid main 基本資料型別 int short long float double char int d short d ...

C語言基礎系列 用mac開發c語言前奏 01

1.常用終端命令 a.pwd 顯示終端的工作路徑.b.ls list 清單 顯示當前工作路徑下的所有的檔案以及資料夾.ls l 以詳細資訊顯示當前工作路徑下的所有的檔案以及資料夾.c.cd 要切換的工作路徑 d.mkdir 在當前工作路徑下建立1個資料夾.mkdir 資料夾名稱 e.clear 清除...

自學iOS開發系列 C語言(陣列)

c語言的編譯和執行 開啟終端輸入 touch arr.c open arr.c 在開啟的檔案中輸入 include int main int argc,const char argv command s儲存 gcc o arr arr.c arr 終端輸出hello world 陣列 一 一維陣列 ...