1.只有一个下标的数组称为一维数组,有两个下标的数组称为二维数组,有N个下标的数组称为n维数组。
2.二维数组定义:
类型说明符 数组名[常量表达式1][常量表达式2] = {值1,值2,...};
int a[2][3] = {{7,6,3},{2,8,5}}; 说明2行3列的数组
3.常量表达式1表示第一维下标的长度
常量表达式2表示第二维下标的长度
4.二维数组的元素也称为双下标变量
5.赋值一般与两层for循环嵌套(双循环)使用。外层循环控制行数,内层循环控制每行对应的列数。
6.二维数组的用途:游戏地图(1表示此处是障碍物,0表示此处可以通过);电影院购票(1表示此位置已经卖过,0表示此位置还有票)。
7.注意事项:
(1)二维数组定义时,可以不指定第一维的长度,但是必须给定第二维。
(2)元素个数不足,会自动补齐
8.右左原则,先读右边,遇到括号反向。
//二维数组交换
// int a[2][3] = {0} , b[3][2] = {0};
// for (int i = 0; i < 2; i ++) {//控制二维数组行数的输出
// for (int j = 0; j < 3; j ++) {//控制二维数组列数的输出
// a[i][j] = arc4random()%(100 - 10 + 1) + 10;//随机生成数组
// printf("%d ",a[i][j]);//输出数组
// }
// printf(" ");//一行输出完成后,换行
// }
// printf("交换之后 ");
// for (int i = 0; i < 2; i ++) {//控制被交换二维数组的行数
// for (int j = 0; j < 3; j ++) {//控制被交换二维数组的列数
// b[j][i] = a[i][j];//交换后的数组的列数=行数,行数=列数
// }
// }
// for (int i = 0; i < 3 ; i ++) {
// for (int j = 0; j < 2; j ++) {
// printf("%d ",b[i][j]);
// }
// printf(" ");
// }
//二维数组找最大值,确定最大值的位置,如果多个,输出多个
// int number[2][3] = {0};
// int max = 0;
// for (int i = 0; i < 2; i ++) {
// for (int j = 0; j < 3; j ++) {
// number[i][j] = arc4random()%(100 - 10 + 1) + 10;
// printf("%d ",number[i][j]);
// }
// printf(" ");
// }
// for (int i = 0; i < 2; i ++) {
// for (int j = 0; j < 3; j ++) {
// max = max > number[i][j] ? max : number[i][j];
// }
// }
// printf("max=%d ",max);
// for (int i = 0; i < 2; i ++) {
// for (int j = 0; j < 3; j ++) {
// if (max == number[i][j]) {
// printf("i=%d j=%d",i,j);
// //break;//只输出一个
// }
// }
// }
// int a[2][3] = {0} , b[3][2] = {0};
// for (int i = 0; i < 2; i ++) {//控制二维数组行数的输出
// for (int j = 0; j < 3; j ++) {//控制二维数组列数的输出
// a[i][j] = arc4random()%(100 - 10 + 1) + 10;//随机生成数组
// printf("%d ",a[i][j]);//输出数组
// }
// printf(" ");//一行输出完成后,换行
// }
// printf("交换之后 ");
// for (int i = 0; i < 2; i ++) {//控制被交换二维数组的行数
// for (int j = 0; j < 3; j ++) {//控制被交换二维数组的列数
// b[j][i] = a[i][j];//交换后的数组的列数=行数,行数=列数
// }
// }
// for (int i = 0; i < 3 ; i ++) {
// for (int j = 0; j < 2; j ++) {
// printf("%d ",b[i][j]);
// }
// printf(" ");
// }
//二维数组找最大值,确定最大值的位置,如果多个,输出多个
// int number[2][3] = {0};
// int max = 0;
// for (int i = 0; i < 2; i ++) {
// for (int j = 0; j < 3; j ++) {
// number[i][j] = arc4random()%(100 - 10 + 1) + 10;
// printf("%d ",number[i][j]);
// }
// printf(" ");
// }
// for (int i = 0; i < 2; i ++) {
// for (int j = 0; j < 3; j ++) {
// max = max > number[i][j] ? max : number[i][j];
// }
// }
// printf("max=%d ",max);
// for (int i = 0; i < 2; i ++) {
// for (int j = 0; j < 3; j ++) {
// if (max == number[i][j]) {
// printf("i=%d j=%d",i,j);
// //break;//只输出一个
// }
// }
// }
// printf("
");
9.一位数组,只有下标概念,给出数组名和下标就可以操作。