一、二維數組
二維數組可以看作是“數組的數組”,常用於表示表格、矩陣等具有行和列結構的數據。
聲明方式:
int arr[3][4]; // 3 行 4 列的整型二維數組
初始化:
int matrix[2][3] = {
{1, 2, 3}, // 第0行
{4, 5, 6} // 第1行
};
二、循環嵌套
為了遍歷二維數組的所有元素,通常使用嵌套的 for 循環:外層控制行,內層控制列。
示例:遍歷並打印二維數組
/*
循環嵌套和二位數組
*/
#include<iostream>
using namespace std;
int main() {
// 二維數組的定義,存儲一個班級學生的所有科目分數,3個同學,4個學科成績
// int students[3][4];
// 二維數組的初始化
int students[3][4] = {
{10, 20, 30, 40},
{20, 30, 40, 50},
{30, 40, 50, 60}
};
// 二維數組賦值操作
students[2][2] = 80;
students[3][1] = 70;
// 二維數組循環遍歷, ++i 比 i++ 效率好點
/*for (int i = 0; i < 3; ++i) {
for (int j = 0; i < 4; ++j) {
cout << "students[" << i << "][" << j << "] = " << students[i][j] << endl;
}
}*/
// 製表
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
cout << students[i][j];
cout << ",";
}
cout << endl;
}
return 0;
}
10,20,30,40,
20,30,40,50,
30,40,80,60,
三、複習
1.入口條件循環和出口條件循環之間的區別是什麼?各種C++循環分別屬於其中的哪一種?
入口條件循環:必須滿足條件才能進入循環體 for , while
出口條件循環:在循環的每次迭代之後檢查測試條件,這保證了至少執行循環體中的內容一次 do while
2.如果下面的代碼片段是有效程序的組成部分,它將打印什麼內容?
int i;
for (i=0; i<5; i++)
cout <<i;
cout << endl;
#include<iostream>
using namespace std;
int main() {
int i;
for (i = 0; i < 5; i++)
cout << i;
cout << endl;
return 0;
}
3.如果下面的代碼片段是有效程序的組成部分,它將打印什麼內容?
int j;
for (j=0;j<11;j+=3)
cout<<j;
cout << endl << j<< endl;
xaye@orange:~/code/dev/17$ ./a.out
0369
12
4. 編寫一個打印1、2、4、8、16、32、64的for循環,每輪循環都將計數變量的值乘以2。
#include<iostream>
using namespace std;
int main() {
int i;
for (i = 1; i <= 64; i*=2) {
cout << i << " "<< endl;
}
return 0;
}
5.下面的語句是否有效?如果無效,原因是什麼?如果有效,它將完成什麼工作?
int x=(1,024); // 有效
第二部分的語句又如何呢?
int y;
y= 1,024; // 有效
xaye@orange:~/code/dev/17$ ./a.out
y = 1