概念:相同資料型別的集合,即為陣列。
定義格式:int arr[10];
解析:定義乙個int
型別的陣列,並為陣列取名arr
, 陣列元素個數為10
;
通過下標或者指標引用, 但是下標從0開始
,所以最後一位下標 = 陣列長度 - 1
。
那到底怎麼使用呢?還是舉例吧!
定義:int arr[10];
引用:arr[0], arr[1], arr[2] ... arr[9]
在陣列定義的時候就可以對陣列初始化了,比如:
int arr[10]=;
那麼這樣初始化的結果是什麼呢?
就是:
arr[0]
=1arr[1]
=2arr[2]
=3..
....
arr[8]
=9arr[9]
=0
概念解析:
全域性變數:該變數在全域性生效;
區域性變數:該變數只在區域性生效,其餘部分無效。
舉例
#include
using
namespace std;
int a[5]
;int
main()
;for
(i=0
;i<
5;i++
) cout<<<
" "; cout<<
'\n'
;for
(i=0
;i<
5;i++
) cout<<<
" "; cout<<
"\n"
;for
(i=0
;i<
5;i++
) cout<<<
" ";
return0;
}
陣列a為全域性變數; 全域性變數預設初始化為0
陣列b為區域性變數; 區域性變數預設初始化為隨機數
陣列c為區域性變數; 沒有被初始化的部分預設為0
陣列依靠下標引用元素,但是有要求:
(1)陣列下標為正整數
(2)在定義元素個數的下標範圍內使用
當在程式中把下標寫成負數或者大於元素個數時,程式編譯不會出錯。
比如:
int arr[10]
=;cout<;
洛谷例題:p1047 校門外的樹
題目描述
某校大門外長度為l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是1公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸0的位置,另一端在l的位置;數軸上的每個整數點,即0,1,2,…, l,都種有一棵樹。
由於馬路上有一些區域要用來建地鐵。這些區域用它們在數軸上的起始點和終止點表示。已知任一區域的起始點和終止點的座標都是整數,區域之間可能有重合的部分。現在要把這些區域中的樹(包括區域端點處的兩棵樹)移走。你的任務是計算將這些樹都移走後,馬路上還有多少棵樹。
輸入格式
第一行有2個整數l(1≤l≤10000)和m(1≤m≤100) ,l代表馬路的長度,m代表區域的數目,l和m之間用乙個空格隔開。
接下來的m行每行包含2個不同的整數,用乙個空格隔開,表示乙個區域的起始點和終止點的座標。
輸出格式
1個整數,表示馬路上剩餘的樹的數目。
輸入輸出樣例
輸入 #1
500 3
150 300
100 200
470 471
輸出 #1
298
題目分析:
原本有l+1棵樹,一旦要建地鐵,則該地段樹木數量就減少
減少規則:[起始點,終止點] 的樹木均消失
假設定義陣列a[i], 下標對應區域點位置,陣列元素取值0表示有樹,1表示無樹;
則初始a[i]=0, 當[起始點,終止點] 的樹木消失, 即對應a[i]=1;
最後判斷a[i]==0的個數即可。
那麼先思考一下,怎麼寫**吧!
別看下面,等你寫**哦那麼接下來,上**
#include
#define n 10005
using
namespace std;
intmain()
;//初始化陣列 0表示有樹,1表示無樹
cin>>l>>m;
for(
int i=
1; i<=m; i++
)for
(int i=
0; i<=l; i++
) cout
}
C語言第五課
主要內容 二維陣列 字串陣列 多維陣列 理解 一 二維陣列 有兩個下標的陣列稱為二維陣列 定義 型別修飾符 陣列名 常量表示式1 常量表示式2 第一維的長度 第二維的長度 示例 定義乙個2行3列的二維陣列 int array 2 3 這是乙個標準的二維陣列 二維陣列的元素也稱為雙下標變數 0 1 2...
C語言第五課
c函式若不宣告型別,則預設為 int 型 在函式中,指標可以 被調函式 修改 主調函式 1 int func int a main 2 void func int num main int num 2 func int b 野指標會 指向任一地方 int pum printf x pum 指標偏移的...
C語言 第五課
一 所有程式在執行時,程式中的語句按其先後順序執行。這種按照語句的先後次序順序執行的程式結構稱為順序結構。根據某種條件的成立與否而採用不同的程式段進行處理的程式結構稱為選擇結構。二 簡單if語句 color red if 表示式 color img 小括號中的表示式表示控制條件,表示式的值非零為 真...