《程式設計》課程筆記三 陣列

2021-09-05 10:04:49 字數 2767 閱讀 4246

一、知識總結

★陣列是按順序排列的一組具有相同型別的變數的集合。

★乙個陣列在記憶體中佔一片連續的儲存單元。

1、一維陣列

①一維陣列的定義

儲存型別  資料型別  陣列名  [整數1][整數2]…… [整數n];

[整數1]數值大小必須是值為正的常量

②一維陣列的引用

陣列名[下標]

int a[5]  下標的個數表明陣列的維數

注意,c語言中陣列的下標都是從0開始的,

下標既可以是常量也可以是整形表示式。

注意,引用陣列元素時下標可以是整型變數。例如引用score的第i個元素用score[i],但在定義陣列時不能使用變數定義陣列的大小。

★定義但未初始化的陣列元素的值仍然是隨機數。對一位陣列進行初始化時可用int score[5]={90,80,70,100,95}int score[ ]={90,80,70,100,95}

★引用a[0]陣列a中第乙個元素  a[5] b[5]

for(i=0;i<=5,i++)    b[i]=a[i]

memset(a,0,size of(a)) 算出a位元組,把所有位元組賦值為0。僅限賦值(0,1)其他都不准。

★int a [10]

int main( )

陣列定義為全域性陣列

2、二維陣列

①二維陣列的定義

一維陣列元素的型別也是一維陣列時,便構成了「陣列的陣列」,即二維陣列。

二維陣列定義的一般格式:

資料型別陣列名[常量表示式1][常量表示式2] ;

例如: int a[4][10];

a陣列實質上是乙個有4行、10列的**,**中可儲存40

個元素。第1行第1列對應a陣列的a[0][0],第n行第m列對應陣列元素a[n-1][m-1]。

說明:當定義的陣列下標有多個時,我們稱為多維陣列 ,下標的個數並不侷限在乙個或二個,可以任意多個,如定義乙個三維陣列a和四維陣列b:

int a[100][3][5];

int b[100][100][3][5];

多維的陣列引用賦值等操作與二維陣列類似。

②二維陣列的引用

二維陣列的陣列元素引用與一維陣列元素引用類似,區別在於二維陣列元素的引用必須給出兩個下標。

※  引用的格式為:

<陣列名>[下標1][下標2]

例: int a[3][5] 

a是二維陣列(相當於乙個3*5的**) ,共有3*5-15個元素,它們是:

a[0][0] a[0][1] a[0][2] a[0][3] a[0][4]

a[1][0] a[1][1] a[1][2] a[1][3] a[1][4]

a[2][0] a[2][1] a[2][2] a[2][3] a[2][4] 

因此可以看成乙個矩陣(**) , a[2][3]即表示第3行第4列的元素。

③二維陣列的初始化

二維陣列的初始化和一維陣列類似。可以將每一行分開來寫在各自的括號裡,也可以把所有資料寫在乙個括號裡。

3、字元陣列和字串型別

字元陣列是指元素為字元的陣列。字元陣列是用來存放字串行或字串的。字元陣列也有一維、二維和三維之分。

①字元陣列的定義格式

字元陣列定義格式同於一般陣列,所不同的是陣列型別是字元型,第乙個元素同樣是從ch1[0]開始,而不是ch1[1]。具體格式如下:

[儲存型別]char陣列名[常量表示式1]…

例如:char ch1 [5];              //陣列ch1是乙個具有5個字元元素的一維字元陣列

char ch2[3][5];         //陣列ch2是乙個具有15個字元元素的二維字元陣列

②字元陣列的賦值

(1)用字元初始化陣列

例如:char chr1 [5]={'a','b','c','d','e'}

字元陣列中也可以存放若干個字元,也可以來存放字串。兩者的區別是字串有一結束符('\0')。反過來說,在一維字元陣列中存放著帶有結束符的若干個字元稱為字串。字串是一維陣列,但是一維字元陣列不等於字串。

例如: 

char chr2[5]=fa',b'c,'d,'\0);即在陣列chr2中存放著乙個字串「abcd"。

(2)用字串初始化陣列

(3)陣列元素賦值

(4)字元常量和字串常量的區別③字串的輸入與輸出

二、應用知識

四、應用舉例

例5.17數字統計 

【問題描述】請統計某個給定範圍[l, r]的所有整數中,數字2出現的次數。比如給定範圍[2, 22] ,數字2在數2中出現了1次,在數12中出現1

次,在數20中出現1次,在數21中出現1次,在數22中出現2次,所以數字2在該範圍內一共出現了6次。

【演算法分析]

列舉[l,r]區間的所有整數,對於每個整數x:

1.將整數x轉化成字串s,可以用sprintf(s,%d",x)來實現;

2.列舉字串s的每個字元判斷是否為2。

#include

#include

#include

using namespace std;

char s[10]; 

int main()

{int l,rans=0; 

cin>>>r;

for (int i-l; i{sprintf(s,"%d",i);

i-strlen(s);

for (int j=0; j=1-1; ++i)

if (s[j]=='2) +tans;

}cout

c 語言程式設計課程筆記 三

18數學三班 崔珊 2018212819 一 知識點概括性總結 一維陣列 1 一般形式 型別說明符 陣列名 常量表示式 例如 int a 10 元素為a 0 a 9 2 常量表示式中不允許包含變數,可以包含常量或符號常量。3 陣列元素下標可以是任何整型常量 整型變數或任何整型表示式。4 可以對陣列元...

陣列課程筆記

本章圍繞計算平均分 最高分 成績排序與查詢等學生成績管理問題,重點介紹向函式傳遞一維陣列和二維陣列的方法。主要內容如下 1 陣列型別,陣列的定義和初始化,以及對陣列名特殊含義的理解 2 向函式傳遞一維陣列和二維陣列 3 排序 查詢 求最大最小值等常用方法 為什麼使用陣列?利用輸入和迴圈語句儲存大量同...

陣列課程筆記

知識點總結 一維陣列 一般格式 型別 陣列名 元素個數 陣列是一組具有相同型別的變數的集合。應用陣列將一組數儲存在記憶體的一片連續區域中,使用乙個統一的名字來標識 這組同型別的資料,這個名字稱為資料名。構成陣列的每個資料項稱為陣列元素,c程式通過陣列的下標實現對陣列元素的訪問。c語言的下標都是從0開...