一、知識總結
★陣列是按順序排列的一組具有相同型別的變數的集合。
★乙個陣列在記憶體中佔一片連續的儲存單元。
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 } 18數學三班 崔珊 2018212819 一 知識點概括性總結 一維陣列 1 一般形式 型別說明符 陣列名 常量表示式 例如 int a 10 元素為a 0 a 9 2 常量表示式中不允許包含變數,可以包含常量或符號常量。3 陣列元素下標可以是任何整型常量 整型變數或任何整型表示式。4 可以對陣列元... 本章圍繞計算平均分 最高分 成績排序與查詢等學生成績管理問題,重點介紹向函式傳遞一維陣列和二維陣列的方法。主要內容如下 1 陣列型別,陣列的定義和初始化,以及對陣列名特殊含義的理解 2 向函式傳遞一維陣列和二維陣列 3 排序 查詢 求最大最小值等常用方法 為什麼使用陣列?利用輸入和迴圈語句儲存大量同... 知識點總結 一維陣列 一般格式 型別 陣列名 元素個數 陣列是一組具有相同型別的變數的集合。應用陣列將一組數儲存在記憶體的一片連續區域中,使用乙個統一的名字來標識 這組同型別的資料,這個名字稱為資料名。構成陣列的每個資料項稱為陣列元素,c程式通過陣列的下標實現對陣列元素的訪問。c語言的下標都是從0開...c 語言程式設計課程筆記 三
陣列課程筆記
陣列課程筆記