C++基础语法4
YanSS_0416 · · 个人记录
一、一维数组
(一)数组定义
格式:数据类型 数组名[数组长度];
例如:
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];
}
}
思考:按下图方向进行二维数组输入,输入语句应当如何修改?