数组练习题,数组的动态初始化

news2024/9/8 23:42:03

数组的遍历

  • 定义一个数组,求和
int[] arr = {1,2,3,4,5,6,7};
        int sum = 0;
        for (int i = 0; i <arr.length ; i++) {
            sum = sum +arr[i];
        }
        System.out.println(sum);
  • 定义一个数组,统计数组里面一共有多少能够被3 整除的数字:
int[] arr1 = {4,62,85,36,97,53,68,17,84,82,94,15,58,52,57,21,73,91,25,57,39,75};
        int count = 0;
        for (int i = 0; i < arr1.length; i++) {
            if (arr1[i]%3==0){
                count++;
            }
        }
        System.out.println("共有"+count+"个数字能够被3整除");
    }

  • 定义一整数类型数组,如果该数字是奇数,则将当前数字扩大两倍,如果是偶数,则将该数字变成该数字的1/2.

一个循环尽量只做一件事情,虽然把打印写的同一个循环里面可以,结果一样,但是不建议。

 int[] arr3 = {21,46,42,56,24,556,83,72,41,63,58,24};
        for (int i = 0; i < arr3.length; i++) {
            if (arr3[i]%2==1) {
                arr3[i] = arr3[i]*2;
            }else
                arr3[i] = arr3[i]/2;
           
        }
        //一个循环尽量只做一件事情,虽然把打印写的同一个循环里面可以,结果一样,但是不建议。
        for (int i = 0; i < arr3.length; i++) {
            System.out.println(arr3[i]);
        }

数组的动态初始化和常见的问题

静态:已经知道数组的具体数据(可以写死) :int[] arr= {1,2,4}
动态:不知道数组里面的具体数值 int[] arr={?,?,?}

动态初始化:初始化的时候,只指定数组的长度,有系统为数组分配初始值
格式:数据类型 [] 数组名 = new 数据类型[数组长度]
int[] arr = new int[100];

  • 定义一个数组,用来存储班级中五十个学生的姓名,姓名未知,带学生报道后,在进行添加
 String[] arr4 = new String[50];
        arr4[0] = "da";
        arr4[1] = "ff";
        arr4[2] = "dafew";
        arr4[3] = "dwfwea";
        arr4[4] = "dafwe";
        arr4[5] = "dwefwa";
        System.out.println(arr4[0]);
        System.out.println(arr4[1]);
        System.out.println(arr4[2]);
        System.out.println(arr4[3]);
        System.out.println(arr4[4]);
        System.out.println(arr4[5]);
        System.out.println(arr4[6]);

在这里插入图片描述

字符串的数组 初始值默认为NULL,int 类型的默认初始值为0;

 int[] x= new int[3];
        x[0] = 1;
        System.out.println(x[0]);
        System.out.println(x[1]);
        System.out.println(x[2]);

在这里插入图片描述
初始化规律:
数组默认初始化值:
整数类型:默认初始化值0
小数类型:默认初始化值0.0
字符类型:默认初始化值为’/u0000’ 空格
布尔类型:默认初始化值为 false
引用数据类型:默认初始化值为null;

静态初始化和动态初始化的区别

动态:手动指定数组长度,由系统给出默认初始化值。
静态:手动指定数组元素,系统会根据元素的个数,计算出数组的长度。

  • 举例:
    用数组容器来存储键盘录入五个整数,应使用动态数组 int[] arr={?,?,?}

数组常见的问题

在这里插入图片描述
.ArrayIndexOutOfBoundsException:数组索引超出范围异常(索引越界异常)
原因:访问了不存在的索引

数组常见的操作

  1. 求最值
    已知数组元素为{2,3,5,1,7,4}
    请找出数组中最大值 并打印在控制台:
        int[] arr6 = {2,3,5,1,7,4};
        int max =arr6[0];      //临时认为0索引最大
        for (int i = 0; i < arr6.length; i++) {//循环第一次是自己和自己比较,可以跳过此循环,从i=1开始进行循环
            if (arr6[i]>=max){
                max = arr6[i];
            }
        }
        System.out.println(max);

max的初始值不能随便写成0,如果数组中的值都是负数,此时max等于0 ,大于数组中的任意值,所以一般临时默认为索引0的值是最大的。

  1. 求和并统计个数
    生成10个0~100之间的随机数,
    (1)求出所有数据的和,
    (2)求出所有数据的平均数,
    (3)统计有多少个数小于平均值
 int[] arr= new int[10];
        Random r = new Random();
        //生成数组,一个循环只干一件事
        for (int i = 0; i < arr.length; i++) {
            int number = r.nextInt(100);
            arr[i] = number;
        }
        //所有数据的和
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum = sum +arr[i];
            System.out.print(arr[i]+"  ");
        }
        System.out.println("数组中所有的数字和是"+sum);

        //求所有的平均数
        double avg = sum/10.0;
        System.out.println("平均数是"+avg);

        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]<avg){
                count++;
            }
        }
        System.out.println("比平均数小的个数总共有"+count+"个");

输出结果:
在这里插入图片描述

  1. 交换数组中的数据
    本人方法:
    
        int[] arr = {1,2,3,4,5,6,7,8};
        //不能小于arr.length,否则循环到数组长度的1/2之后,交换好的数据又会被交换回去。
        for (int i = 0; i < arr.length/2; i++) {
            int j= arr.length-1-i;
            int temp;
            temp = arr[i];
            arr[i] =arr[j];
            arr[j] =temp;
        }

        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }

b站up主方法:

int[] arr = {1,2,3,4,5,6,7,8};
        for (int i = 0,j = arr.length-1; i < j;i++,j--) {
            int temp;
            temp = arr[i];
            arr[i] =arr[j];
            arr[j] =temp;
        }
        for (int i : arr) {
            System.out.print(i);
        }

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

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

相关文章

JavaScript快速入门:ComPDFKit PDF SDK 快速构建 Web端 PDF阅读器

JavaScript快速入门&#xff1a;ComPDFKit PDF SDK 快速构建 Web端 PDF阅读器 在当今丰富的网络环境中&#xff0c;处理 PDF 文档已成为企业和开发人员的必需品。ComPDFKit 是一款支持 Web 平台并且功能强大的 PDF SDK&#xff0c;开发人员可以利用它创建 PDF 查看器和编辑器&…

了解Unity编辑器之组件篇Playables和Rendering(十)

Playables 一、Playable Director&#xff1a;是一种用于控制和管理剧情、动画和音频的工具。它作为一个中央控制器&#xff0c;可以管理播放动画剧情、视频剧情和音频剧情&#xff0c;以及它们之间的时间、顺序和交互。 Playable Director组件具有以下作用&#xff1a; 剧情控…

数据结构初阶--栈和队列

目录 一.栈 1.栈的定义 2.顺序栈的功能实现 2.1.顺序栈的定义 2.2.顺序栈的初始化 2.3.顺序栈的判空 2.4.顺序栈的入栈 2.5.顺序栈的出栈 2.6.顺序栈的取栈顶元素 2.7.顺序栈的求栈的大小 2.8.顺序栈的销毁 2.9.完整程序 Stack.h Stack.c test.c 二.队列 1.队…

S475支持 ModbusRTU 转 MQTT协议采集网关

6路模拟量输入和2路RS485串口是一种功能强大的通信接口&#xff0c;可以接入多种设备和系统&#xff0c;支持4-20mA输出的传感器以及开关量输入输出。本文将详细介绍6路模拟量输入和2路RS485串口的应用场景和功能&#xff0c;重点介绍其在SCADA、HMI、远程数据监控以及采集控制…

机器学习——样本不均衡学习

1、样本不均衡定义 一般在分类机器学习中&#xff0c;每种类别的样本是均衡的&#xff0c;也就是不同目标值的样本总量是接近的&#xff0c;但是在很多场景下的样本没有办法做到理想情况&#xff0c;甚至部分情况本身就是不均衡情况&#xff1a; &#xff08;1&#xff09;很多…

[洛谷]P2052 [NOI2011] 道路修建(dfs)

在递归过程中也把子节点的贡献&#xff08;以及左右国家数记录下来了&#xff09;。 void dfs(int u,int fa) {d[u]1;//当前节点也算一个 for(int ih[u]; i; ine[i]) {int toe[i];//子节点if(tofa) continue;//防止重复搜索&#xff0c;即防止从下往上搜dfs(to,u);//子节点 //…

基于SSM+JSP+LayUI的宿舍管理系统

修正初始账号密码 默认账号&#xff1a;admin&#xff0c;默认密码&#xff1a;123456修复后台管理头像消失功能相对简单些&#xff0c;可能需要添加一些功能&#xff0c;需要源码免费提供需要运行服务、添加功能等联系我

springboot开放实验室管理系统【纯干货分享,免费领源码03361】

摘 要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是使用动态网页开发技术java作为系统的开发语言&#xff0c;M…

如何挑选滚珠螺杆的润滑油脂?

滚珠螺杆在日常使用中&#xff0c;出现卡顿或者噪音等问题&#xff0c;不用担心&#xff0c;不是你的滚珠螺杆出了问题&#xff0c;而是润滑系统出了问题&#xff0c;提醒你应该更换润滑油了。那么&#xff0c;我们应该怎样挑选滚珠螺杆的润滑油呢&#xff1f; 一般建议用轴承润…

hive整合es,详细过程。

参考官网 Apache Hive integration | Elasticsearch for Apache Hadoop [7.17] | Elastic 官网的介绍很简单&#xff0c;我看了很多博客&#xff0c;写的也很简单&#xff0c;但是我搞了半天才勉强成功&#xff0c;分享下&#xff0c;免得各位多走弯路。 环境准备 官网也很…

K8S暴露pod内多个端口

K8S暴露pod内多个端口 一、背景 公司统一用的某个底包跑jar服务&#xff0c;只暴露了8080端口 二、需求 由于有些服务在启动jar服务后&#xff0c;会启动多个端口&#xff0c;除了8080端口&#xff0c;还有别的端口需要暴露&#xff0c;我这里就还需要暴露9999端口。 注&a…

mysql常用时间相关函数

在我们平常开发的工作中&#xff0c;我们在数据库中经常会用到时间相关的函数&#xff0c;比如格式化当前时间&#xff0c;求当前时间或者计算某个特定间隔后的时间&#xff0c;那么我们主要会用到哪些函数呢&#xff1f; 1&#xff1a;求当前时间&#xff1a; select now();…

Gradle build 失败后提示.lock文件,解决办法

在Gradle build失败之后时&#xff0c;有时候强制关闭AndroidStudio&#xff0c;再次打开build时&#xff0c;会提示各种.lock 文件问题&#xff0c;删除了一个还有下一个&#xff0c;而且路径不一样。 一般情况下是这两个文件夹下的lockfile影响继续build %GRADLE_HOME%/ca…

YoLoV7做图像分类/目标检测过程(附代码+详细操作说明)

一、准备数据 图像在my_1imgs中&#xff0c;一个是原图jpg&#xff0c;一个是用labelimg画的标签xml文件。&#xff08;这个画的是一个矩形框&#xff09; 把自己的数据集&#xff08;原图和标签准备好后&#xff09;&#xff0c;这两个文件复制到VOCdevkit中,ImageSets为空。 …

EtherNet/IP转CAN网关can协议标准

生产管理设备中&#xff0c;会有设备与其他设备的协议不同&#xff0c;数据无法互通&#xff0c;让你的工作陷入困境。这时&#xff0c;一款神奇的产品出现了——远创智控YC-EIP-CAN通讯网关&#xff01; 1, 这款通讯网关采用ETHERNET/IP从站功能&#xff0c;可以将各种CAN总线…

vue-simple-uploader的fileAdded方法不支持异步的解决办法,autoStart 设置

每日鸡汤&#xff1a;悲观者可能正确&#xff0c;但是乐观者往往成功 假设有一个需求&#xff0c;上传的pdf文档不得大于10M 使用 vue-simple-uploader 这个插件&#xff0c;我们需要在 fileAdded 事件里面进行校验&#xff0c;在1.0.0版本以后&#xff0c;如果想停止上传&…

如何快速用Python获取短信验证码

在Python中获取短信验证码需要通过调用短信服务接口或者使用短信网关来实现。具体实现方式取决于你使用的短信服务提供商或者短信网关的API。 一般来说&#xff0c;你需要以下步骤来获取短信验证码&#xff1a; 选择短信服务提供商或者短信网关 你需要选择一个合适的短信服务…

vue利用echarts简单实现具有中心节点的知识图谱

效果展示 边缘节点可拖动&#xff0c;其大小可以根据传入的值而变化&#xff08;比如我更喜欢芒果&#xff0c;所以给了芒果更大的权值&#xff0c;在显示的时候芒果所在的节点显示的比例更大&#xff09; 代码下载 https://download.csdn.net/download/David_house/881151…

汉明距离,两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。

题记&#xff1a; 两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。 给你两个整数 x 和 y&#xff0c;计算并返回它们之间的汉明距离。 示例 1&#xff1a; 输入&#xff1a;x 1, y 4 输出&#xff1a;2 解释&#xff1a; 1 (0 0 0 1) 4 (0 1 0 0…

家用取暖器北美UL 1278测试要求内容

取暖器是指用于取暖的设备&#xff0c;取暖设备根据加热介质不同、加热原不同&#xff0c;大体可以分为&#xff1a;燃气取暖设备、电加热取暖设备、锅炉取暖设备、电壁挂炉取暖。但一般这类产品要上架美国亚马逊平台都必须要办理UL1278测试报告。 适用产品范围&#xff1a; …