第12课 二维数组(1)
string类型不知道各位童鞋们都掌握了没,没掌握的话,嘿嘿嘿(抱拳)我稍微练过一点散打哦。
好了,开玩笑的,今天的课程难度较高,所以我决定分三课讲,就是想让大家把二维数组彻底吃透,以便于学习后面的三维,四维数组。好了,废话不多说,说多了也是废话,废话就是废话,还是不要说废话了。正片开始!
1.二维数组是什么
在C++中,二维数组是一种数据结构,用于存储相同类型的元素,这些元素被组织成行和列的形式。二维数组可以被看作是数组的数组,即数组中的每个元素本身也是一个数组。这使得二维数组非常适合表示表格数据或矩阵。
例如,声明一个包含3行4列的整数二维数组可以写成:
int myArray[3][4];
在C++中,二维数组的内存是连续分配的。这意味着数组的行是顺序存储在内存中的,每个行的元素也是连续存储的。
二维数组可以通过行和列的索引来访问其元素,例如 myArray[i][j]
,其中 i
是行索引,j
是列索引。索引从0开始,所以第一个元素的索引是 myArray[0][0]
。
二维数组的初始化也可以在声明时完成,例如:
int myArray[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12};
}
这个例子中,myArray
被初始化为一个3行4列的数组,每个元素被赋予了相应的值。
在这里说一下,在编程语言中,声明(Declaration)是指创建变量或对象的语句,它告诉编译器变量的名称、数据类型以及它将要存储的内存位置。声明变量是编程中的一个基本操作,它为程序中使用的数据分配空间。
在C++中,声明通常包括以下几个部分:
-
数据类型(Type):这是变量将要存储的数据的类型,比如
int
表示整数,float
表示浮点数,char
表示字符等。 -
变量名(Identifier):这是你给变量起的名字,用于在程序中引用该变量。变量名必须遵守C++的命名规则,比如不能以数字开头,不能包含空格,不能使用C++的保留字等。
-
可选的初始化(Optional Initialization):在声明变量的同时,你可以给它一个初始值。
例如,以下是一个简单的变量声明:(其实跟定义一样)int number; // 声明一个名为 'number' 的整数变量
如果你在声明变量的同时给它一个初始值,这被称为初始化:
int number = 10; // 声明并初始化一个名为 'number' 的整数变量,初始值为 10
对于数组,声明会指定数组中元素的类型和数组的大小:
int myArray[10]; // 声明一个名为 'myArray' 的整数数组,包含10个整数
对于二维数组,声明会指定数组中元素的类型以及行数和列数:
int myMatrix[3][4]; // 声明一个名为 'myMatrix' 的二维整数数组,3行4列
在这个例子中,
int
是数据类型,myMatrix
是变量名,[3]
表示数组有3行,[4]
表示每行有4列。声明是告诉编译器你需要多少内存以及如何解释这块内存的第一步。在C++中,变量必须在使用之前声明。
例题:
题目描述
输入两个nn行mm列的矩阵AA和BB,输出它们的和A+BA+B。
输入格式
第一行包含两个整数n和m,表示矩阵的行数和列数。1≤n≤100,1≤m≤1001≤n≤100,1≤m≤100。 接下来n行,每行m个整数,表示矩阵A的元素。 接下来n行,每行m个整数,表示矩阵B的元素。 相邻两个整数之间用单个空格隔开,每个元素均在1~1000之间。
输出格式
n行,每行m个整数,表示矩阵加法的结果。相邻两个整数之间用单个空格隔开。
样例输入/输出
输入数据 1
3 3 1 2 3 1 2 3 1 2 3 1 2 3 4 5 6 7 8 9
输出数据 1
2 4 6 5 7 9 8 10 12
代码:(新手级)
#include<bits/stdc++.h>
using namespace std;
long long x,y,a[105][105],b[105][105];
int main(){
cin>>x>>y;
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){
cin>>b[i][j];
}
}
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){
cout<<b[i][j]+a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
这里可以看到,二维数组的输入是由双重循环构成的,分别是行和列,是几维数组,就嵌套几个循环。那么每个元素都是由行和列来定位下标。特别提醒,如果要输出二维数组,在第一个循环最后一定要加入endl换行。(粉丝要破200了,开心)