C++基础语法4

· · 个人记录

一、一维数组

(一)数组定义

格式:数据类型 数组名[数组长度];

例如:

int num[100];

注意:在定义数组时,数组长度一般比题目实际要求的长度至少多2,其目的是为了防止数组越界。

(二)数组使用

数组名[下标];

例如:

int num[100];
num[20]=10;//将10赋值给数组num中下标为20的元素。
num[30]=10;
num[31]=num[20]+num[30];

注意:中括号里里面的下标可以是具体的数字、变量或计算式,如果下标为计算式,其结果必须在数组长度范围内。

(三)数组赋值

1.在定义时一次性进行部分或全部赋值

格式:数据类型 数组名[数组长度]={值,值,……,值};

例如:定义时一次性全部赋值

int num[5]={5,4,3,2,1};
// num[0]=5,num[1]=4,num[2]=3,num[3]=2,num[4]=1

例如:定义时部分赋值

int num[5]={5,4};
//num[0]=5,num[1]=4,num[2]=0,num[3]=0,num[4]=0。未指定值的位置默认赋值为0

注意:如果选择定义时一次性全部赋值或部分赋值,计算机一定是按照从下标0开始依次按顺序赋值,不可指定位置,不可超出数组长度。

2.定义后单个赋值

格式:数组名[下标]=具体值/变量/计算式;

例如:

int num[5];
num[1]=1;//直接赋值
num[2]=1;
num[3]=num[2]+num[1];//计算赋值,num[3]存储的值为2

3.批量赋初始值

批量赋初始值需借助循环实现

例如:将一维数组全部赋值为1

int num[100];
for(i=0;i<100;i++)
    num[i]=1;//可赋值为数据类型范围内的任意数值

(四)数组输入

例如:输入一个数N(N<=100),其后输入N个整数。

int N,num[102],i;
cin>>N ;
for(i=0;i<N;i++)
    cin>>num[i];

二、二维数组

(一)数组定义

格式:数据类型 数组名[行数][列数];

例如:

int num[3][4];//定义一个3行4列的整型二维数组num

(二)数组使用

格式:数组名[行下标][列下标];

例如:

int num[3][4];
num[1][2]=10;

(三)数组赋值

1.定义时一次性进行部分或全部赋值

(1)一次性全部赋值

方式一:不明确每一行,依次给每一个赋值

格式:数据类型 数组名[行数][列数]={值,值,…,值};

例如:

int num[3][4]={5,4,3,2,1,5,4,3,2,1,5,4};

方式二:明确每一行,从左往右一对子大括号分别表示第0行、第1行、……、第n-1行,依次给每一个赋值

格式:数据类型 数组名[行数][列数]={{值,…,值},…,{值,…,值}};

例如:

int num[3][4]={{5,4,3,2},{1,5,4,3},{2,1,5,4}};

两种方式的赋值效果如下:

(2)一次性部分赋值,未指定值的位置默认赋值为0

方式一:不明确每一行,依次给连续前k个位置赋值。

例如:

int num[3][4]={5,4,3,1,5,2};

方式二:明确每一行,从左往右一对子大括号分别表示第0行、第1 行、……、第n-1行,依次相应行部分赋值

例如:

int num[3][4]={{5,4,3},{1,5},{2}};

2.定义后单个赋值

格式:数组名[行下标][列下标]=具体值/变量/计算式;

注意:数组中个别位置可以根据需要搁置不用。

例如:

int num[3][4];
num[1][1]=1;//直接赋值
num[1][2]=1;
num[1][3]=num[1][2]+num[1][1];//计算赋值

3.批量赋初始值

例如:将二维数组全部赋值为1

int num[100][100];
for(i=0;i<100;i++){
    for(j=0;j<100;j++){
        num[i][j]=1;//可赋值为数据类型范围内的任意数值
    }
}

(四)数组输入

例如:输入两个数N和M(N、M<=100),其后输入N行,每行M个整数。

int N,M,num[102][102],i,j;
cin>>N >>M;
for(i=0;i<N;i++){
    for(j=0;j<M;j++){
        cin>>num[i][j];
    }
}

思考:按下图方向进行二维数组输入,输入语句应当如何修改?