一維陣列 Array

  • 是由一組相同型態的變數集合而成的

什麼是陣列?

int  a[6] = {1,1,2,3,5,8} ;

例如:儲存100位學生的成績!

為什麼要用陣列?

int a1, a2, a3, a4 ......
cin >> a1 >> a2 >> a3 >> a4 ......
int a[100]={99,98,91,85 ...... };

用變數儲存:

用陣列儲存:

宣告太多變數很麻煩

陣列宣告

int score[6];

資料型態  陣列名稱[陣列大小];

or

int n=6;
int score[n];

索引值

  • 從0開始

int  a [6] = {10,11,12,13,14,15} ;

索引值 0 1 2 3 4 5
a[0] a[1] a[2] a[3] a[4] a[5]

元素值:       10           11           12           13            14            15

陣列初始化

宣告陣列之後,裡頭的元素值是不可預知的資料

31562 0 -2088374528

a

int a[3];
cout<<a[0]<<" "<<a[1]<<" "<<a[3];


//輸出: 31562 0 -2088374528

陣列初始化

  • 沒有初始化不會編譯錯誤,但可能會得到錯誤的結果
  • 宣告陣列時就直接初始化,可以避免錯誤
//給予部分元素初始值,未設定初始值的元素會被設為0

int a[3]={5}; //等同 int a[3]={5,0,0}


//所有元素會被設為0

int a[3]={}; //等同 int a[3]={0,0,0}

陣列輸入輸出

用迴圈輸入輸出

int a[3];

//輸入 1,3,5
for(int i=0 ;i<3 ;i++){
	cin>>a[i];
}


//輸出 1,3,5
for(int i=0 ;i<3 ;i++){
	cout<<a[i]<<' ';
}

陣列輸入輸出

用迴圈輸入輸出

int a[3];

//輸入 1,3,5
for(int i=0 ;i<3 ;i++){
	cin>>a[i];
}
cout << a[0] << a[1] << a[3] ......

實作

楓資辦了一場看誰上課睡覺睡最久的比賽,請找出睡最久的人睡了幾分鐘

輸入:

輸入有兩行。第一行有一個正整數 n 代表參賽人數。第二行有 n 個正整數,代表他們分別睡了多久。

 

輸出:

睡最久的人睡了幾分鐘

實作

#include <iostream>
using namespace std;
int main()
{
    int n, max=0;
    cin>>n; 
    int time[n]={0};
    
    for(int i=0;i<n;i++){
        cin>>time[i];
        
        if(time[i]>max)
            max=time[i];

    }
  
    cout<<max<<endl;
    return 0;
}

Serif

By amiao

Serif

  • 193