当前位置:   article > 正文

19【c++入门】二维数组_怎么将数组定义成全局变量

怎么将数组定义成全局变量

大纲

1.引入

2.二维数组知识大全

3.案例运用

1.引入

班级座位
在班级教室中,大家都一排排做好的,对于每一排学生,
我们可以用一个一维数组来表示一排的学生
需要用5个数组来表示每一排的同学
int a1[10];//a1[]表示第1排的学生
int a2[10];//a2[]表示第2排的学生
int a3[10];//a3[]表示第3排的学生
int a4[10];//a4[]表示第4排的学生
int a5[10];//a5[]表示第5排的学生
现在班级一共有5排10列的同学,该如何表示呢?

现在班级扩招了,班级里有50排10列的同学,该如何表示呢?需要定义50个数组么?
如果班级里有1000排10列的同学,需要定义1000个数组么?
需要用50个数组来表示每一排的同学
int a1[10];//a1[]表示第1排的学生
int a2[10];//a2[]表示第2排的学生
……..
int a50[10];//a50[]表示第50排的学生

一维数组只能用来表示一行或者一列
既有行又有列,我们可以用二维数组表示
对于1000行10列,我们可以直接表示为:a[1000][10];

 2.二维数组

【二维数组定义】
①M和N必须是整型常量表达式,M表示行数,N表示列数。
②一次性定义了M个长度为N的一维数组。
③二维数组可存储的元素数量为M*N,相当于定义了M*N个变量。
例如:int a[3][5]

  【二维数组使用】

【一维数组的引用】数组名[下标]
【二维数组的引用】数组名[行下标][列下标]
①二维数组需要两个下标来引用一个元素;//每个元素都相当于一个普通变量
②下标是一个整型表达式(注意,数组的下标可以是变量或变量表达式);
③二维数组的行下标和列下标都从0开始。
int a[5]
【例】int a[3][5];   
a[0][0] a[0][1] a[0][2] a[0][3] a[0][4]
a[1][0] a[1][1] a[1][2] a[1][3] a[1][4]
a[2][0] a[2][1] a[2][2] a[2][3] a[2][4]
a[0] a[1] a[2] a[3] a[4]
//定义了一个3行5列的整型二维数组
 

注意!:左行右列!

【二维数组初始化】

【初始化为0】
①将二维数组定义为全局变量,则其所有元素都会被初始化为0;
②int arr[m][n] = { 0 }; //注意:只有初始化为0时,可以这样写;
①全部初始化:int a[3][4] = { {0, 0, 0, 0}, {1, 1, 1, 1}, {2, 2, 2, 2}};
【初始化为其他值】
②部分初始化:int a[3][4] = { {0, 0}, {1, 1 } }; 初始化第0行和第1行的前两个元素

【一维数组vs二维数组】

一维数组
① 表示一行 或者 一列
② 只有一个下标
③ 相当于很多个变量绑在一起
二维数组
① 既有行又有列
② 有两个下标:行下标 列下标
③ 相当于很多个一维数组绑在一起

输入操作

输出操作

【赋值】

赋值操作

单个元素赋值:数组的单个元素相当于一个简
单变量,单个元素赋值与简单变量赋值一样。

数组整体赋值:可以在数组初始化时对数组进
行整体赋值。若数组元素的值有某种规律,可
采用循环语句来赋值。 

其他操作

同简单变量的操作方法相同。

数组元素相当于一个普通变量!

3.案例运用
 

知识:

矩阵:在数学中,矩阵(Matrix)是一个按照长方阵
列排列的复数或实数集合
右图:由 m × n 个数 aij 排成的m行n列的数表称为
m行n列的矩阵,简称m * n矩阵
矩阵元素:这m*n 个数称为矩阵A的元素,数aij表示位于
矩阵A的第i行第j列的元素


方阵:行数与列数相同的矩阵,称为方阵(如n*n的矩阵
即是一个方阵)

案例1:

点兵点将

  1. 题目描述
  2. 又到了体育课,今天的体育课,博士仍然会带大家做“点兵点将”的游戏;不过游戏规则有点变化,同样的老师会先给每位同学发一张卡片,每张卡片上都有一个数字并且保证每个同学卡片上的数字都是独一无二的(数字不会超过int的最大值),然后让大家按m行n列的阵型站好(2<=m,n<=100),体育老师会随机报出行列,然后对应的同学,站出来报出自己的编号
  3. 现在给出每位同学卡片中的数字,并给出体育老师报出的数字,求点到名同学报出的编号

引导:

定义一个二维数组存储每位同学的卡片数字 int
a[110][110];
循环嵌套输入二维数组
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
cin >> a[i][j];
输出第x行第y列的元素
cout<<a[x][y];

 答案:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int a[110][110];
  4. int main(){
  5. int m,n,x,y;
  6. cin>>m>>n;
  7. for(int i=0;i<m;i++){
  8. for(int j=0;j<n;j++){
  9. cin>>a[i][j];
  10. }
  11. }
  12. cin>>x>>y;
  13. cout<<a[x][y];
  14. return 0;
  15. }

好了,下次再见!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/44399
推荐阅读
相关标签
  

闽ICP备14008679号