陣列是把相同格式型別的資料元素組合到一起的的容器或者說是工具。有了陣列這個工具,我們的**和程式設計工作變得極為方便,不用乙個乙個定義資料了。乙個陣列在記憶體中佔據一片連續的儲存單元。
陣列包含一維陣列和多維陣列。
一、陣列知識總結及使用過程中的注意事項:
1、陣列大小必須是指值為正的常量,不能為變數。一旦定義不能改變大小。
2、陣列大小最好用巨集來定義。
3、陣列定義後需要賦初值,不然仍然是隨機數。
4、 對陣列的賦值可用迴圈來做,二維陣列用迴圈巢狀賦值或是輸入輸出。包含在標頭檔案#include中的函式memset可以對陣列進行清零處理,但不可以對整型變數進行正常賦值,因為memset是對位元組賦值的,對char類變數單個賦值是沒有問題的。
5、int a[5]={}表示陣列中的5個元素都初始化為0。
int a[10]=表示對陣列前三個元素賦值為0.1.2,其餘元素賦值為0。
二、關於字元陣列
舉例:'a』表示乙個字元,只有字元a,而"a"是字串,包含a和\0。引用字元空格應用單引號。
輸入問題:由scanf得到的字串不會有空格,回車即使下一段。使用gets只能輸入乙個字串,可以得到包含空格的字串。個人感覺做題的時候scanf比cin好用,效率更高。
puts語句輸出乙個字串和乙個換行符。
三、還是那句話,基本語法本身並不難理解,關鍵在於運用。如何將語法知識組合起來形成演算法思路才是我們要考慮的最大問題。
1.二分查詢
這是一種效率極高的演算法,也算是一種找資料時的優化方案。
low=0,high=n-1,mid=0;
while(low<=high)
c[j]=s;}
for(int j=1;j<=n-1;j++)
for(int k=1;k<=n-j;k++)
if(c[k]=1;j--)
cout<2、掃雷遊戲是一款十分經典的單機小遊戲。它的精髓在於,通過已翻開格仔所提示的周圍格地雷數,來判斷未翻開格仔裡是否是地雷。
現在給出n行m列的雷區中的地雷分布,要求計算出每個非地雷格的周圍格地雷數。
注:每個格仔周圍格有八個:上、下、左、右、左上、右上、左下、右下。
輸入第一行包含兩個整數n和m,分別表示雷區的行數和列數。1 <= n <= 100, 1 <= m <= 100。
接下來n行,每行m個字元,『』表示相應格仔中是地雷,『?』表示相應格仔中無地雷。字元之間無任何分隔符。
輸出n行,每行m個字元,描述整個雷區。若相應格中是地雷,則用『』表示,否則用相應的周圍格地雷數表示。字元之間無任何分隔符。
樣例輸入
3 3*?????
?*?
樣例輸出
*10
2211*1
**
#includeusing namespace std;
char a[1010][1010];
int b[1010][1010];
int main()
}
for(int i=1;i<=m;i++)
}cout
}
C C 二維陣列總結
先說在前面,一般的我們說的c c 中的二維陣列是定義在棧中的二維陣列。比如定義了乙個array 3 4 那就指的是定義了乙個三行四列的矩陣形狀的二維陣列,如下圖所示。這樣的矩陣在記憶體中是以箭頭右邊的方式存放的,也就是說實際上我們定義的二維陣列在記憶體中仍然像是一維陣列那樣連續儲存的。可以想象為把乙...
陣列 學習總結
學習完陣列之後,明白的陣列主要運用於計算排序之類的問題。知識主要為 陣列型別,陣列的定義與初始化,以及對陣列名含義的理解。排序 查詢 求最大最小值等常用方法。知識 陣列是一組具有相同型別的變數的集合。在定義陣列的時候不能用變數來定義陣列的大小。而陣列可以分為多類,例如 int 整型和 char 字元...
陣列學習總結
第八章 陣列 學習總結 一 具有相同性質的資料組合成乙個新型別的變數,可以用簡單的程式 比如迴圈50次 這個新變數的各個分量進行相同的處理,每個變數仍然保持這個變數的所有性質。8.1一維陣列 陣列的定義 是一組具有相同型別的變數的集合。使用乙個統一的名字來標識這組相對型別的資料,這個名字稱為陣列名,...