一、為什麼要有陣列
乙個班級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 陣列 一 一維陣列 ...