在我们面对一大批具有相同性质的数据时,一个一个处理就很麻烦,这时候就可以引入数组,将数据共同处理。
一维数组的定义:
类型标识符 数组名[常量表达式]
常量表达式表示数组元素的个数,不能是变量。
数组元素从0开始,不是1。如a[5]中有5个元素,依次为a[0],a[1],a[2],a[3],a[4]。
一维数组的引用:
数组名[下标]
注意:只能逐个引用数组元素,而不能一次引用整个数组。
一维数组的初始化:
类型标识符 数组名[常量表达式]={1,2,3,4,5}
可以赋值部分,则剩余元素自动赋值为零,也可以全赋值。
如果没赋值,则随机赋值给元素随机大数。
数组越界!
非常容易犯的错误,即要访问的元素不在数组的储存空间中,大多数情况是因为数组开的过小,如果想开大数组,尽量让数组在主函数外边定义。也称为全局变量,内部叫局部变量,数组开不太大。
一维数组的应用
数组逆序重放
#include <iostream>
using namespace std;
int main(){
int n,a[1000],i;
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
for(i=n;i>=1;i--)
cout<<a[i]<<" ";
return 0;
}
二维数组
定义:若一维数组的元素也是一维数组时,就构成了数组的数组,即二维数组
数据类型 数组名[常量表达式1][常量表达式2]
与一维数组类似,二维数组从a[0][0]开始,引用,赋值也与一维类似。
可以把元素想象成矩阵,解题时重点考虑元素变换的关系问题。
应用:
矩阵变换行
#include<iostream>
using namespace std;
int main()
{
int a[6][6],i,j,m,n;
for(i=1;i<=5;i++)
for(j=1;j<=5;j++)
cin>>a[i][j];
cin>>n>>m;
for(i=1;i<=5;i++)
swap(a[m][i],a[n][i]);
for(i=1;i<=5;i++)
{
for(j=1;j<=5;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
总结:数组的引入,让我们可以从整体上操作数据,本质上还是三大基本结构的综合应用,掌握数组,会让我们的解题更方便。