当前位置: 首页 > news >正文

数组练习题

(一) 求最值

需求: 已知数组元素为 {33 ,5 ,22 ,44 ,55}, 请找出数组中最大值并打印在控制台

public class Demo3 {public static void main(String[] args) {int arr[] = {33, 5, 22, 44, 55};int max = arr[1];//不可以初始化为 0: 假如数组中全是负数, 那么最终输出会为 0.for (int i = 0; i < arr.length; i++) {if (arr[i] > max) {max = arr[i];}}System.out.println(max);}
}输出: 55改为增强 for 循环:for (int j : arr) {if (j > max) {max = j;}}//💌输出: 55

优化:

循环中的第一次比较本质上是 arr[i] 自己和自己比较, 没有意义.

故可以把最开始比较的元素改成第二个元素 arr[2], 减少一次比较.

		for (int i = 1; i < arr.length; i++) {if (arr[i] > max) {max = arr[i];}}

(二) 求和并统计个数

需求:生成10个1~100之间的随机数存入数组。

import java.util.Random;public class homework {public static void main(String[] args) {//定义数组, 生成随机数并存入数组:Random r = new Random();int[] arr = new int[10];for (int i = 0; i < arr.length; i++) {//⚠️改变数组元素时不可以用 foreach!!!int num = r.nextInt(100) - 1;arr[i] = num;}//求和:int sum = 0;for (int i : arr) {sum = sum + i;}System.out.println("数据和 = " + sum);//求平均值:int average = sum / arr.length;System.out.println("平均值 = " + average);//求比平均值小的数的个数:int count = 0;for (int i : arr) {if (i < average) {count++;}}System.out.println("比平均值小的数有 " + count + " 个.");//检验:for (int i : arr) {System.out.print(i + " ");}System.out.println();}
}

(三) 交换数组中的元素

需求: 定义一个数组,存入1, 2, 3, 4, 5. 按照要求交换索引对应的元素.

交换前: 1, 2, 3, 4, 5;

交换后: 5, 4, 3, 2, 1. (依次交换首尾元素.)

public class homework1 {public static void main(String[] args) {int arr[] = {1, 2, 3, 4, 5};for (int i = 0; i < arr.length / 2; i++) {//循环次数为元素个数的一半.int temp = arr[i];//临时保存.arr[i] = arr[arr.length - i - 1];//交换数据. 最前的元素为 arr[1], 最后的元素为 arr[arr.length - i - 1]. (节省了另外创建一个变量的内存)arr[arr.length - i - 1] = temp;}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}//💌输出: 5 2 3 4 1 

(四) 打乱数组内元素顺序

需求: 定义一个数组, 存入 1~5.

要求打乱数组中所有数据的顺序.

import java.util.Random;public class homework2 {public static void main(String[] args) {int arr[] = {1, 2, 3, 4, 5};Random r = new Random();for (int i = 0; i < arr.length; i++) {int randomIndex = r.nextInt(arr.length);//获取随机索引.//交换元素.int temp = arr[i];arr[i] = arr[randomIndex];arr[randomIndex] = temp;}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}

注意: 为了避免出现重复, 每次随机都是以交换的形式进行的, 这样就不会出现重复.

屏幕截图 2026-04-26 014101

屏幕截图 2026-04-26 014138

屏幕截图 2026-04-26 014151

http://www.jsqmd.com/news/700889/

相关文章:

  • 中国半导体展哪家好?深度解析国内展会优势,助力企业挑选合适平台 - 品牌2026
  • 协作与版本控制:MLflow、DVC与Git LFS管理模型与数据
  • Claude-Mem:为AI编程助手构建持久化记忆系统的架构与实践
  • Amazon ECS Agent 深度解析:架构、部署与生产环境实战指南
  • 【AI Agent实战】公众号排版丑?AI帮你一键改造成「课堂型」高级感
  • 线性回归与XGBoost实战对比:原理与性能解析
  • ARM RealView Debugger硬件断点技术深度解析
  • 环境与依赖管理:Conda、Docker与Poetry构建可复现开发环境
  • Python实现带动量的梯度下降算法与优化技巧
  • Claude Scientific Skills:134个技能打造桌面AI科学家,加速科研工作流
  • Keras文本预处理核心技术解析与实践指南
  • 贝叶斯定理:从直觉理解到实战应用
  • 深度学习噪声训练:原理、实现与调优指南
  • 如何打造出色的产品设计作品集?5 大核心要素与面试加分指南
  • LangAgent框架:从API调用到目标驱动的AI智能体开发实战
  • Cursor + Claude Code 接入 API 实战:国内稳定使用 Claude 4.7 配置全攻略
  • 3个关键步骤解锁手绘白板Excalidraw:从零到高效协作的完整指南
  • Kurtosis一键部署Auto-GPT:告别环境配置,专注AI智能体开发
  • 谷歌最新算法有哪些更改?首屏加载超过2秒将直接失去排名
  • MIUI自动化任务脚本:3个核心技巧解决小米社区重复性工作
  • C语言刷题日记 #6
  • CentOS 7 安装与使用教程(手把手图文详解版)
  • 投稿踩坑3个月,被拒两次才发现:一开始的选刊方向就错了
  • 阿里云AgentBay SDK:云端沙盒环境为AI智能体提供安全执行能力
  • 如何用PyMICAPS快速制作专业气象图表:从数据到可视化的一站式解决方案
  • 基于大语言模型的代码仓库智能文档生成:RepoAgent实战指南
  • 绝缘臂高空作业车品牌推荐及选择指南:绝缘臂高空作业车、电力局专用高空作业车、绝缘斗臂高空作业车、绝缘曲臂高空作业车选择指南 - 优质品牌商家
  • Weka回归算法实战:从入门到工业级应用
  • 落地台灯怎么选?内行才知道的挑选技巧,家长必看避坑干货
  • 中望CAD2026机械版:将点坐标批量导入