ARRAY

老師你錯了 是從0開始不是1 --陣列

CONTENTS

  • 一維陣列   arr[ ]
  • 二維陣列   arr[ ][ ]
0 1 2 3 4 5 6 7 8 9

一維陣列

declare an array

 
  • 資料型態 變數名稱[儲存空間];
int a[10]; 
// 資料型態: 整數(陣列), 陣列名稱: a, 陣列大小: 10  
// 沒有初始化的陣列(壞寶寶)
// 裡面也許長這樣 a = {-2147483648, 2147483657, ...}
double b[100] = {0.1, 0.1, 0.2};
// 資料型態: 浮點數(陣列), 陣列名稱: b, 陣列大小: 3
// 陣列值用大括號括
//除了初始化的3個數其他預設為0
char str[6] = {0};
// 資料型態: 字元(陣列), 陣列名稱: str, 陣列大小: 6
// 字元陣列會包含最後一個字元'\0', 因此開的大小要字數+1
// 但建議還是開大一點, 不開白不開, 你也不會少一塊肉
// 初始化為0(乖寶寶)
// 裡面長這樣: str = {0 ,0 ,0 ,0 ,0 ,0}

存取陣列

 
  • 迴圈
int a[6];
for(int i=0;i<=4;i++) a[i]=i;
a[0] a[1] a[2] a[3] a[4] a[5]

1

0

5

4

3

2

注意

 
  • 不要存取不在陣列空間內的值
  • 如果打成下面那樣的話OJ會出現RE
  • 電腦會當機
int a[10];
cout<<a[100]<<endl;
cout<<a[1000]<<endl;

注意

 
  • 陣列的長度在宣告後就固定不變了
  • 那有些人會想說要打成這樣
  • 不建議
int n;
int a[n];

多維陣列

declare an array

 
  • 資料型態  變數名稱[儲存空間][儲存空間][][][]....
  • 幾維就開幾格
int a[2][2];
double a[2][2];

存取陣列

 
  • 巢狀迴圈
int a[3][3];
for(int i=0;i<3;i++){
    for(int j=0;j<3;j++) a[i][j]=i+j;
}
0 1 2
0
1
2

0

4

3

3

2

2

1

2

1

ARRAY

老師你錯了 是從0開始不是1 --陣列

CONTENTS

  • 一維陣列   arr[ ]
  • 二維陣列   arr[ ][ ]

Why we need array?

 

如果我們有10筆資料

int a,b,c,d,e,f,g,h,i,j;

如果我們有100筆資料

int a,b,c,d,e,f;
int g,h,i,j,k,l,m,n,o,p,q,r,s,t,f...........
for(int i=0;i<100;i++){
	int a;
}

陣列

By jumping945

陣列

  • 125