数组基本知识2

news2024/11/23 19:25:46

目录

 

前言

二维数组

使用原因

定义二维数组

访问数组元素

实例


 

前言

上一篇,我简单的复习了一维数组,本篇讲述二维数组的基本知识,帮助大家预习和复习。

二维数组

使用原因

本质原因:一维数组,已经无法满足解决实际问题的需要

例如:要统计一个学校各个班级学生的考试成绩,既要标示班级,又要标示学生成绩,如果使用一维数组的话,一个数组,只能表示一个因此当真正解决这项问题时,需要同时创建两个一维数组分别表示对应的目标,最后同时输出。但这样的写法是,比较繁琐的,为了使你编写的代码简洁,所以才有了二维数组。

定义二维数组

格式  1(已经确定好,行数和列数)

数据类型 [   ] [  ] 数组名=new  数据类型 [ 行数] [ 列数  ] ;

实例

int  [  ] [  ] xx=new int [3 ]  [4  ];

理解:上面代码,表示3*4 的二维数组,即3行4列的二维数组。其中 xx[0] ,xx[1],xx[2] 度可以理解成一个一维数组。

6b16890014ae43efb8bd4600a5e680b1.png

格式 2 (确定行数,但不确定列数)

数据类型 [  ]  [   ]数组名  =new 数据类型 [ 行数 ] [  ] ;

实例 

int [  ]  [  ] xx =new int [3 ] [  ];

注意:行数一定不能省略, 列数根据实际需要判断是否需要。

格式 3 (确定元素值)

数据类型 [  ]  [   ]数组名  = {   {第1行初始值} ,{第2行初始值}, {第3行初始值},......{第n行初始值}    } ;

实例

int  [  ]  [  ]xx=          {   {1,2} ,{3,4,5,6}, {7,8,9} } ;   

访问数组元素

我们知道二维数组,就相当于走楼梯。

大家小时候,在楼梯上玩,有时,有人会问你:你现在什么位置?你可能会说,我在3 楼 第四个阶梯(假设6层楼,每层楼有8个阶梯)。那么如果用二维数组应该怎么表示,我处在的楼梯位置呢

思路

首先创建一个二维数组表示 一栋楼的楼数和阶梯数。

int [  ] [ ] address= new int [ 3] [8] ;

其次 表示你所在的位置----我在3 楼 第四个阶梯

address [3] [4 ] 这就是我们所在的位置。

实例

 问题:统计 一个 公司 3 个 销售小组中每一个小组的销售额 以及整个公司的总销售额

第1 个小组 : 11,12 。

第2个小组 : 21,22,23 。

第3个小组 : 31,32,33,34 。

思路

最终目的:得到小组的销售额和总销售额

1 总销售额=所有小组销售额相加  ,并且小组销售,每一个小组成员销售相加

2 发现使用二维数组表示最为方便的(本题中,我们不仅要表示小组之间的关系还要表示小组内部的关系,需要使用到二维数组。如果使用一维数组的话,需要同时创建两个数组才行,过程比较繁琐)

3 使用循环嵌套,内层循环表示每一个小组销售总额,外层循环表示小组相加的最终销售总额。

代码如下

public class Example2 {
    public static void main(String[] args) {
        int [] [] arr=new int[3][];
        arr[0]=new int[]{11,12};
        arr[1]=new int[]{21,22,23};
        arr[2]=new int[]{31,32,33,34};
        int sum=0;//总销售额
        int groupsum=0;//小组销售额
        for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr[i].length;j++){
                groupsum+=arr[i][j];
            }
            sum+=groupsum;
            System.out.println("小组销售"+groupsum);
            groupsum=0;
        }
        System.out.println("总销售额="+sum);

    }
}

c1e9257f4d424b5088e8ca4bdcdbbc4c.png

当你写完,你发现,小组销售额groupsum 只要在外层循环写一遍,就可以了。没必要在for循环外设置为全局变量。

修改后:

public class Example2 {
    public static void main(String[] args) {
        int [] [] arr=new int[3][];
        arr[0]=new int[]{11,12};
        arr[1]=new int[]{21,22,23};
        arr[2]=new int[]{31,32,33,34};
        int sum=0;//总销售额

        for(int i=0;i<arr.length;i++){
            int groupsum=0;//小组销售额
            for(int j=0;j<arr[i].length;j++){
                groupsum+=arr[i][j];
            }
            sum+=groupsum;
            System.out.println("小组销售"+groupsum);
//            groupsum=0;
        }
        System.out.println("总销售额="+sum);

    }
}

 

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

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

相关文章

OSPF路由配置--单区域

目录 因为OSPF有很多重要的特殊区域和内容,所以划分为多篇博客来配置 一. 实验拓扑图 二. 实验配置 三. 实验验证: 因为OSPF有很多重要的特殊区域和内容,所以划分为多篇博客来配置 不理解OSPF路由动态协议的可以回顾一下OSPF详解&#xff0c;下这一系列的实验都不再做解…

SpringBoot集成kafka-消息转发@sendTo()注解

SpringBoot集成kafka-消息转发sendTo 1、消费者2、生产者3、实体类对象4、JSON工具类5、配置文件application.yml6、测试类7、测试 1、消费者 启动消费者进行消息监听&#xff0c;消费者A监听到生产者发送的消息使用sendTo()注解将消息转发给消费者B package com.power.consu…

在树莓派5上使用pytroch进行模型训练—全流程笔记

在树莓派上运行pytroch模型&#x1f680; 在完成了树莓派的一系列基础配置学习之后&#xff0c;按照规划&#xff0c;下一步要做的就是在树莓派上安装一个pytorch&#xff0c;尝试运行一下深度学习的模型&#xff0c;如果可以实现且准速度有一定保证的话&#xff0c;就可以作为…

代码随想录算法训练营第50天|卡码网 98. 所有可达路径

1.卡码网 98. 所有可达路径 题目链接&#xff1a;https://kamacoder.com/problempage.php?pid1170 文章链接&#xff1a;https://www.programmercarl.com/kamacoder/0098.所有可达路径.html#总结 1.图的存储 本题我们使用邻接表 或者 邻接矩阵都可以&#xff0c;因为后台数据…

掌握路演艺术:创新大赛路演稿撰写指南

如何在创新大赛中脱颖而出&#xff1f;一份精心准备的路演稿是关键 前言开场白&#xff1a;抓住注意力的第一步项目概述&#xff1a;清晰传达核心价值市场分析&#xff1a;展示项目的市场潜力商业模式与盈利计划&#xff1a;务实的策略团队介绍&#xff1a;展现团队的实力与文化…

vue3的nginx配置文件配置(nginx只配置前端vue3的nginx.conf文件)

1、本地的访问网址的链接 http://localhost:5173/official-website/ 2、程序的配置 3、nginx.conf配置 #user nobody; worker_processes 1;events {worker_connections 1024; }http {include mime.types;default_type application/octet-stream;log_format main…

全网最细springboot学习笔记—SpringBoot配置SSL(https)

文章主要内容大致为&#xff1a; SpringBoot配置SSL&#xff08;https&#xff09; SpringBoot全局异常处理 SpringBoot 404页面处理 接下来让我们一起探讨三大框架之一的springboot框架&#xff1a; SpringBoot配置SSL&#xff08;https&#xff09; SpringBoot可以通过在appl…

如何使用ssm实现基于java的电脑硬件库存管理系统

TOC ssm145基于java的电脑硬件库存管理系统jsp 第1章 绪论 1.1 课题背景 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。所…

第四十六篇,PID心法解读

猛回头&#xff0c;有近半年的时光没输出了&#xff0c;看着昨天加班调的PID数据&#xff0c;灵光闪现了一下&#xff0c;赶紧记录。 参数整定找最佳&#xff0c;从小到大顺序查   先是比例后积分&#xff0c;最后再把微分加 曲线振荡很频繁&#xff0c;比例度盘要放大   曲…

基于Open Cv的数字图像手势识别系统,Python编程实现,可以识别以下6种手势,含代码和报告

该项目的目标是设计并实现一个能够实时识别特定手势的系统。系统将使用OpenCV库来捕获视频流&#xff0c;并通过图像处理技术来识别特定的手势。具体来说&#xff0c;系统将识别以下六种手势&#xff1a; 挥手 - 手掌水平移动。握拳 - 手指全部弯曲成拳头。坐起 - 模拟做仰卧起…

sft是mean-seeking rl是mode-seeking

原文链接 KL散度是D(P||Q)&#xff0c;P和Q谁在前谁在后是有讲究的&#xff0c;P在前&#xff0c;就从P采样。 D K L ( P ∣ ∣ Q ) E x − p ( x ) ( l o g ( P ( x ) / Q ( x ) ) ) D_{KL}(P||Q)E_{x-p(x)}(log(P(x)/Q(x))) DKL​(P∣∣Q)Ex−p(x)​(log(P(x)/Q(x)))想象一…

关于Java中@Component的使用中出现@Autowired为NULL的问题

目录&#xff1a; 关于Java中Component的使用中出现Autowired为NULL的问题解决过程 关于Java中Component的使用中出现Autowired为NULL的问题 解决过程 我在写一个项目中使用Component配置了一个RedisCompent在这里插入代码片类我将在AccountController和 UserinfoController中…

如何使用ssm实现基于Vue框架的订餐系统+vue

TOC ssm157基于Vue框架的订餐系统vue 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管…

AI数字时代客户体验白皮书5G云算力网络云网终端AIGC人工智能宽带政企物联网专线 IDC智慧城市专家学者教授培训讲师分享

客户体验的时代已然来临 在过去的几十年里&#xff0c;中国企业逐步从产品驱动转向市场驱动&#xff0c;从规模竞争走向创新竞争。然而&#xff0c;随着市场竞争的白热化和产品、服务的高度同质化&#xff0c;企业之间的差异化逐渐被削弱&#xff0c;传统的价格战、渠道战已经…

一题看 无记忆化dfs、记忆化dfs和dp直接的转化

无记忆化dfs&#xff1a; class Solution { public:bool resfalse;bool wordBreak(string s, vector<string>& wordDict) {set<string> S;int ns.size();for(auto ss:wordDict){S.insert(ss);}function<void(int)> dfs[&](int t){if(restrue) retur…

深度学习--对抗生成网络(GAN)

对抗生成网络&#xff08;Generative Adversarial Network, GAN&#xff09;是一种深度学习模型&#xff0c;由伊恩古德费洛&#xff08;Ian Goodfellow&#xff09;及其同事在2014年提出。GAN通过两个神经网络的对抗过程来生成数据&#xff0c;这两个网络分别是生成器&#xf…

Chapter 03 Vue指令(下)

欢迎大家订阅【Vue2Vue3】入门到实践 专栏&#xff0c;开启你的 Vue 学习之旅&#xff01; 文章目录 前言一、v-on指令二、v-for指令三、v-bind指令 前言 在 Vue.js 中&#xff0c;指令是带有 v- 前缀的特殊属性&#xff0c;不同属性对应不同的功能。通过学习不同的指令&#…

临床医生与人工智能识别三级淋巴结成熟状态的研究对比|文献速递·24-08-24

小罗碎碎念 这期推文的主题是三级淋巴结&#xff0c;主要解决一个问题——临床上如何识别三级淋巴结&人工智能如何应用于三级淋巴结的识别。这两篇文献来源于临床和工科两位不同的老师&#xff0c;是在与他们交流的过程中推荐的&#xff0c;在这里向他们表示感谢&#xff…

在VSCode中使用REST Client插件调试HTTP接口

在 VSCode 中安装 REST Client 扩展程序。新建 test.http 文件。编写请求 请求编写格式可以查看 REST Client 扩展程序说明。点击“Send Request”发送请求 5. 等待请求完成查看响应 请求完成会自动打开响应结果。响应结果上面部分是响应头&#xff0c;下面部分是响应…

idea付费插件,SequenceDiagram比较好用

以下idea付费插件你们都用过哪些呢&#xff1f; SequenceDiagram插件是一种用于绘制时序图的工具。时序图是一种图形化的表示对象之间消息传递顺序的方法。 该插件可以在使用各种编程语言编写代码时&#xff0c;方便地绘制时序图&#xff0c;以帮助开发者更好地理解和描述系统…