Java基础 二维数组简介

news2024/11/17 3:50:31

一、二维数组的定义

当一维数组元素的类型也是一维数组时,便构成了“数组的数组”,即二维数组。二维数组定义的一般格式:

dataType arrayName[length1][length2];

其中, dataType 为数据类型, arrayName 为数组名, length1 为第一维下标的长度, length2 为第二维下标的长度。
我们可以将二维数组看做一个 Excel 表格,有行有列,length1 表示 行数 ,length2 表示列数,要在二维数组中定位某个元素,必须同时指明行和列。

例如:

int a[4][6];                                    

 

二、二维数组元素的引用

二维数组的数组元素引用与一维数组元素引用类似,区别在于二维数组元素的引用 必须给出两个下标 。
引用的格式为:

 arrayName[length1][length2];

例如:

int a[3][4];                                    

定义了一个 3 行 4 列的二维数组,共有 3×4=12 个元素,数组名为 a,即:

a[0][0], a[0][1], a[0][2], a[0][3]
a[1][0], a[1][1], a[1][2], a[1][3]
a[2][0], a[2][1], a[2][2], a[2][3]

二维数组的行下标和列下标都从0开始;如果想表示第 1行第 1 列的元素,应该写作 a[0][0],第n行第m列对应数组元素a[n-1][m-1]

a[2][3]即表示第3行第4列的元素。

三、二维数组的初始化


​ 初始化为0:

​ ① 定义为全局变量,定义为全局变量的二维数组默认会被初始化为0。

​ ② int a[N][M]= {0}; 将所有N*M个元素全部初始化为0(只有初始化为0可以这么写)。

​ 初始化为其他值:

​ ① 全部初始化: 二维数组的每一行是一个一维数组,可以按照一维数组的方式初始化,最外层再加一个大括号“{}”。

​ 示例1:int a[3][2] = { {1, 2}, {4, 5}, {7, 8} } ; (内部大括号之间由英文逗号分隔)。

​ 示例2:char c[3][2] = { {'a', 'b'}, {'c', 'd'}, {'e', 'f'} } ;

​ ② 部分初始化:

​ 示例:int a[3][3] = { {1, 2}, {4, 5} }; (初始化第0行和第1行的前2个元素)。

四、二维数组的输入输出

​ 二维数组的输入:

 

 

​ 示例:读取3行2列的整数矩阵,存储到二维数组中:

int a[5][5];
​for(int i=1; i<=3; i++)
​{
​   for(int j=1; j<=2; j++)
​   {
​       cin>>a[i][j];
​   }
​}

​ 二维数组的输出:

 

​ 将上述矩阵保持原来的行和列原样输出。

int a[5][5];
​for(int i=1; i<=3; i++)
​{
​   for(int j=1; j<=2; j++)
​   {
​       cout<<a[i][j];
​   }
​}

五、逆序输出矩阵

 

const int N=101,M=101;
​int n,m,a[N][M];
​int main()
​{
​    cin>>n>>m;
​    for(int i=1; i<=n; i++)//从上往下一行一行读取
​    {
​       for(int j=1; j<=m; j++)//从左往右一列一列读取
​       {
​           cin>>a[i][j];//存放于指定位置
​       }
​    }
​    for(int i=n; i>=1; i--)//从最后一行往前读取
​    {
​       for(int j=m; j>=1; j--)//从最后一列往左读取
​       {
​           cout<<a[i][j];
​       }
​    }
​    return 0;
​}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/82989.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TDengine3.0与2.x数据库参数对比

TDengine 已经发布很长时间了&#xff0c;产品基本稳定下来了。 以下总结了 TDengine 3.0 与 2.x 数据库参数的一些变化&#xff0c;方便大家从 2.x 切换到 3.0。 注意&#xff1a;2.x 与 3.0 文件系统不兼容&#xff0c;不能直接升级。 2.x3.xdays单位&#xff1a;天&#xff…

云原生之使用Docker部署PESMCS Ticket工单系统

云原生之使用Docker部署PESMCS Ticket工单系统一、PESMCS Ticket介绍二、检查本地系统环境1.检查系统版本2.检查docker状态三、创建mariadb容器1.创建network2.创建数据目录3.创建mariadb容器4.查看mariadb容器状态四、创建PESMCS Ticket容器1.创建PESMCS Ticket容器2.查看PESM…

【黄啊码】如何用小程序实现世界杯参赛队伍投票

本次只分享小程序端的代码实现&#xff0c;后端每个人都有自己的实现方法&#xff0c;就不写在此。 好了&#xff0c;先看实现样式&#xff1a; 本次投票实现需要一个页面和一个弹窗实现&#xff0c;我们做的是淘汰赛部分&#xff0c;在此&#xff0c;黄啊码将淘汰赛部分直接选…

配置Nginx解决http host头攻击漏洞【详细步骤】

配置Nginx解决http host头攻击漏洞【详细步骤】前言1、进入nginx目录下2、修改nginx配置文件3、添加上后重启配置文件Nginx常用基本命令仰天大笑出门去&#xff0c;我辈岂是蓬蒿人前言 大概内容&#xff1a; 安全系统渗透测试出host头攻击漏洞&#xff0c;下面是解决步骤 1、…

React组件之间的通信方式总结(上)

先来几个术语&#xff1a; 官方我的说法对应代码React elementReact元素let element<span>A爆了</span>Component组件class App extends React.Component {}无App为父元素&#xff0c;App1为子元素<App><App1></App1></App> 本文重点&…

idea中用SSH工具手动打包部署

我用的是MobaXterm工具&#xff1a; 第一步&#xff1a;先将自己的文件整体运行一下&#xff0c;确保可以正常运行 第二步&#xff1a;在Maven中找到名为XXXX&#xff08;root&#xff09;的名称展开 ---》Lifecycle &#xff0c;先点击 clean&#xff0c;确保无误后点击 pac…

clickhouse三节点三分片双副本环绕部署

文章目录clickhouse安装部署01节点 metrika.xml 配置文件信息02节点 metrika.xml 配置文件信息03节点 metrika.xml 配置文件信息macros 实例信息编辑查看结果clickhouse安装部署 rpm安装过程以及注意事项 01节点 metrika.xml 配置文件信息 <?xml version"1.0"…

笔试强训(四十三)

目录一、选择题二、编程题2.1 电话号码2.1.1 题目2.1.2 题解2.2 求和2.2.1 题目2.2.2 题解一、选择题 &#xff08;1&#xff09;下列关于synflood攻击的说法错误的是&#xff08;B&#xff09; A.服务端由于连接队列被占满而不能对外服务 B.不但能攻击TCP服务&#xff0c;还能…

做个家务,让我搞懂了 Linux I/O 模型

I/O 其实就是 input 和 output&#xff08;输入输出&#xff09; 在计算机操作系统中对应数据流的输入与输出&#xff0c;在 Linux 中&#xff0c;既有文件的 I/O&#xff0c;也有网络 I/O 无论是文件 I/O 还是网络 I/O&#xff0c;其传输过程都是类似的 今天我们以文件 I/O…

【Unity学习笔记】UnrealToUnity教程:(网上购买的素材导入Unreal+插件转Unity)

【Unity学习笔记】UnrealToUnity教程&#xff1a; 最近想从Unreal那边化点缘借借素材&#xff0c;没想到踩到一个大坑 一&#xff0c;素材导入Unreal 这个教程比较多&#xff0c;根据素材的来源&#xff0c;传送门是以下这几个&#xff1a; 1.项目之间互相迁移&#xff0c;不…

PGL 系列(一)图的基础概念

一、图知识 图的节点间是否有方向,可将图分为无向图与有向图; 图的边是否有权重,可以将图分为无权图和有权图; 图的边和点是否具有多种类型,可以将图分为同构图和异构图 度是图上一节点,其边的条数 邻居指的是图上一节点的相邻节点 无向图:临界矩阵就是

值得一看,阿里又杀疯了开源内部“M9”级别全彩版分布式实战笔记

学习是一种基础性的能力。然而&#xff0c;“吾生也有涯&#xff0c;而知也无涯。”&#xff0c;如果学习不注意方法&#xff0c;则会“以有涯随无涯&#xff0c;殆矣”。 学习就像吃饭睡觉一样&#xff0c;是人的一种本能&#xff0c;人人都有学习的能力。我们在刚出生的时候…

汽车以太网物理层IOP自动化测试解决方案

解决方案功能介绍 该解决方案的测试目的是定义一组测试&#xff0c;以确保使用具有100 BASE-T1或1000BASE-T1能力的PHYs的多个设备之间的互操作性&#xff0c;要求每个PHY能够在给定的时间限制内建立稳定的链路&#xff0c;能够可靠地监视当前链路状态并将其传递到上层&#x…

CRMEB电商商城系统阿里云ECS服务器安装配置搭建教程文档

阿里云ECS服务器配置教程&#xff1a;一、推荐使用宝塔Linux面板&#xff0c;简单好用。二、放行服务器端口。详细步骤&#xff1a; 1.在阿里云控制台&#xff0c;云服务器ECS&#xff0c;实例&#xff0c;点击最右侧更多→实力状态→停止。 2.选择停止&#xff0c;点击确定. …

Java培训堆 Heap永久区

永久区 永久存储区是一个常驻内存区域&#xff0c;用于存放JDK自身所携带的 Class,Interface 的元数据&#xff0c;也就是说它存储的是运行环境必须的类信息&#xff0c;被装载进此区域的数据是不会被垃圾回收器回收掉的&#xff0c;关闭 JVM 才会释放此区域所占用的内存。 J…

Cross-modal Pretraining in BERT(跨模态预训练)

BERT以及BERT后时代在NLP各项任务上都是强势刷榜&#xff0c;多模态领域也不遑多让…仅在2019 年就有8篇的跨模态预训练的论文挂到了arxiv上…上图是多篇跨模态论文中比较稍迟的VL-BERT论文中的比较图&#xff0c;就按这个表格的分类&#xff08;Architecture&#xff09;整理这…

[LeetCode 1781]所有子字符串美丽值之和

题目描述 题目链接&#xff1a;所有子字符串美丽值之和 一个字符串的 美丽值 定义为&#xff1a;出现频率最高字符与出现频率最低字符的出现次数之差。 比方说&#xff0c;“abaacc” 的美丽值为 3 - 1 2 。 给你一个字符串 s &#xff0c;请你返回它所有子字符串的 美丽值…

微信小程序框架(五)-全面详解(学习总结---从入门到深化)

目录 UI框架_TDesign 引入TDesign UI框架_TDesign组件 Rate 评分 Toast 轻提示 UI框架_Vant 使用方式 引入组件 UI框架_Vant组件 Overlay 遮罩层 Grid 宫格 Card 商品卡片 UI框架_TDesign TDesign 企业级设计体系&#xff08;前端UI组件库&#xff09; 地址&#xff1a;…

影响项目进度的因素有哪些?如何跟踪项目计划?

影响项目进度的因素&#xff1a; 1、项目经理能力不足 一名优秀的项目经理&#xff0c;要对制定项目计划、安全、质量、成本管理等各项工作都熟悉&#xff0c;也要能管理好项目团队。 如果无法有效管理团队、没有完全掌握项目管理方法等都是项目经理能力不足的表现&#xff…

跳槽一次能涨多少?今天见识到跳槽天花板。

2022年马上就快结束了&#xff0c;最近内卷严重&#xff0c;各种跳槽裁员&#xff0c;相信很多小伙伴也在准备明年的金三银四的面试计划。 在此分享一套学习笔记 / 面试手册&#xff0c;年后跳槽的朋友可以好好刷一刷&#xff0c;还是挺有必要的&#xff0c;它几乎涵盖了所有的…