Java基础习题及参考代码(数组)

二白整理了一些关于数组的习题,本人也逐个完成,有需要的同学自取,答案仅供参考。

01:对10个整数进行按照从小到大的顺序排序 

package Practise;/*** @JdkVersion: 17* @Author: 二白程序员* @Date 2024/4/8 13:24* QQ:1512015112* VX:18056394367*/public class Demo01 {public static void main(String[] args) {
//        01:对10个整数进行按照从小到大的顺序排序int[] arr = {5,35,24,56,37,98,45,87,22,13};int[] newArr = new int[1];for (int i = 0;i<arr.length;i++){for (int j = i; j < arr.length; j++) {if (arr[i]>=arr[j]){newArr[0]=arr[i];arr[i]=arr[j];arr[j]=newArr[0];}}}for (int a : arr){System.out.println(a+" ");}}
}

02:求一个3*3矩阵对角线元素之和

<提示>程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。

package Practise;import java.util.Scanner;/*** @JdkVersion: 17* @Author: 二白程序员* @Date 2024/4/8 13:53* QQ:1512015112* VX:18056394367*/public class Demo02 {public static void main(String[] args) {
//        02:求一个3*3矩阵对角线元素之和
//        <提示>程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。Scanner scanner =new Scanner(System.in);double sum = 0;double[][] a = new double[3][3];System.out.println("请输入一个3*3矩阵");for (int i =0;i<a.length;i++){System.out.println("第"+(i+1)+"行");for (int j =0;j<a[i].length;j++){a[i][j] = scanner.nextDouble();if (i==j){sum = sum+a[i][j];}}}System.out.println(sum);}
}

03:有一个已经按升序排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 

<提示>程序分析:首先判断此数第一次小于数组中哪个元素,然后将此数插入,插入后此元素之后的数,依次后移一个位置。

package Practise;import java.util.Scanner;/*** @JdkVersion: 17* @Author: 二白程序员* @Date 2024/4/8 13:54* QQ:1512015112* VX:18056394367*/public class Demo03 {public static void main(String[] args) {
//        03:有一个已经按升序排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
//        <提示>程序分析:首先判断此数第一次小于数组中哪个元素,然后将此数插入,插入后此元素之后的数,依次后移一个位置。int[] arr = {1,3,5,8,10,23,28,45};int[] newArr = new int[arr.length+1];int i =0,j;Scanner scanner = new Scanner(System.in);System.out.println("请输入你要插入的数");int insert = scanner.nextInt();for (i=0;i< arr.length;i++){//先把数组中所有的数都复制到新数组里,这样新数组里就有了一个多余的空间newArr[i]=arr[i];}for ( i = 0;i<arr.length;i++){//找到插入的位置,记为iif (insert<arr[i]){//6  i=3break;}}for (j=arr.length;j>i;j--){//把倒数第二个换到倒数第一个,依次到i的位置newArr[j]=arr[j-1];}newArr[i]=insert;//要插入的数据插到i的位置for (int a:newArr){//输出新数组System.out.println(a);}}
}

04:将一个数组逆序输出。 

package Practise;/*** @JdkVersion: 17* @Author: 二白程序员* @Date 2024/4/8 16:42* QQ:1512015112* VX:18056394367*/public class Demo04 {public static void main(String[] args) {
//        04:将一个数组逆序输出。int[] arr = {1,3,5,8,10,23,28,45};int[] newArr = new int[arr.length];for (int i = arr.length-1, j =0;i>=0;i--,j++){newArr[j] =arr[i];}for (int a : newArr){System.out.println(a);}}
}

05:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 

package Practise;import java.util.Arrays;
import java.util.Scanner;/*** @JdkVersion: 17* @Author: 二白程序员* @Date 2024/4/8 16:56* QQ:1512015112* VX:18056394367*/public class Demo05 {// TODO: 2024/4/9 如何实现未知数组长度的情况下一直输入public static void main(String[] args) {
//        05:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。int m=0,l=0;Scanner scanner = new Scanner(System.in);System.out.println("请输入数组长度");int n = scanner.nextInt();int[] a = new int[n];for (int i = 0;i<a.length;i++){System.out.println("请输入数组");a[i]= scanner.nextInt();int max = a[0];int min = a[0];if (a[i]>max){max=a[i];m=i;}if (a[i]<min){min=a[i];l=i;}}int temp=a[0];a[0]=a[m];a[m]=temp;temp=a[a.length-1];a[a.length-1]=a[l];a[l]=temp;System.out.println(Arrays.toString(a));}}

06:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

package Practise;import java.util.Scanner;/*** @JdkVersion: 17* @Author: 二白程序员* @Date 2024/4/8 17:02* QQ:1512015112* VX:18056394367*/public class Demo06 {public static void main(String[] args) {
//        06:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数Scanner scanner = new Scanner(System.in);System.out.println("请输入要后移的位数");int a = scanner.nextInt();int[] arr = {1,3,5,8,10,23,28,45};int[] newArr = new int[arr.length];while (a>arr.length){System.out.println("输入错误,请重新输入");a = scanner.nextInt();}for (int i = arr.length - a, j = 0; i < arr.length; i++, j++) {newArr[j] = arr[i];}for (int i = 0, j = a; i < arr.length - a; i++, j++) {newArr[j] = arr[i];}for (int b : newArr){System.out.println(b);}}
}

07:定义一个44列的二维数组,逐个从键盘输入值,然后将第1行和第4行的数据进行交换,将第2行和第3行的数据进行交换

package Practise;import java.util.Arrays;
import java.util.Scanner;/*** @JdkVersion: 17* @Author: 二白程序员* @Date 2024/4/8 17:20* QQ:1512015112* VX:18056394367*/public class Demo07 {public static void main(String[] args) {//        07:定义一个4行4列的二维数组,逐个从键盘输入值,然后将第1行和第4行的数据进行交换,将第2行和第3行的数据进行交换int [][] a = new int[4][4];System.out.println("请输入数组");Scanner scanner = new Scanner(System.in);for (int i =0;i<a.length;i++){System.out.println("请输入第"+(i+1)+"行数字");for (int j = 0;j<a[i].length;j++){a[i][j]= scanner.nextInt();}}for(int i =0;i<a.length;i++){int temp = a[0][i];a[0][i]=a[3][i];a[3][i]=temp;}for(int i =0;i<a.length;i++){int temp = a[1][i];a[1][i]=a[2][i];a[2][i]=temp;}for (int i = 0; i < a.length; i++) {for (int i1 = 0; i1 < a[i].length; i1++) {System.out.print(a[i][i1]+" ");}System.out.println();}}
}

08:定义一个34列的二维数组,逐个从键盘输入值,编写程序将四周的数据清0

package Practise;import java.util.Scanner;/*** @JdkVersion: 17* @Author: 二白程序员* @Date 2024/4/9 19:11* QQ:1512015112* VX:18056394367*/public class Demo08 {public static void main(String[] args) {
//        08:定义一个3行4列的二维数组,逐个从键盘输入值,编写程序将四周的数据清0int[][] a = new int[3][4];Scanner scanner = new Scanner(System.in);System.out.println("请输入数组");for (int i=0;i<a.length;i++){System.out.println("第"+(i+1)+"行");for (int j=0;j<a[i].length;j++){a[i][j] = scanner.nextInt();if (i==0||i==a.length-1||j==0||j==a[i].length-1){a[i][j]=0;}}}for (int i = 0; i < a.length; i++) {for (int i1 = 0; i1 < a[i].length; i1++) {System.out.print(a[i][i1]+" ");}System.out.println();}}
}

09:定义一个34列的二维数组,逐个从键盘输入值,将左下三角的值清0

package Practise;import java.util.Arrays;
import java.util.Scanner;/*** @JdkVersion: 17* @Author: 二白程序员* @Date 2024/4/9 19:39* QQ:1512015112* VX:18056394367*/public class Demo09 {public static void main(String[] args) {
//        09:定义一个3行4列的二维数组,逐个从键盘输入值,将左下三角的值清0int [][] a = new int[3][4];Scanner scanner = new Scanner(System.in);System.out.println("请输入数组");for (int i = 0;i<a.length;i++){System.out.println("第"+(i+1)+"行");for (int j = 0; j < a[i].length; j++) {a[i][j] = scanner.nextInt();if ((i==a.length-2&&j==0)||(i==a.length-1&&j==0)||(i==a.length-1&&j==1)){a[i][j]=0;}}}for (int[] b:a){System.out.println(Arrays.toString(b));}}
}

10:定义一个44列的二维数组,逐个从键盘输入值,将对角线的值清0

package Practise;import java.util.Arrays;
import java.util.Scanner;/*** @JdkVersion: 17* @Author: 二白程序员* @Date 2024/4/9 19:56* QQ:1512015112* VX:18056394367*/public class Demo10 {public static void main(String[] args) {
//        10:定义一个4行4列的二维数组,逐个从键盘输入值,将对角线的值清0int [][] a = new int[4][4];System.out.println("请输入数组");Scanner scanner = new Scanner(System.in);for (int i = 0; i < a.length; i++) {System.out.println("第"+(i+1)+"行");for (int j = 0; j < a[i].length; j++) {a[i][j]= scanner.nextInt();if (i==j){a[i][j]=0;}}}for (int[] b:a){System.out.println(Arrays.toString(b));}}
}

11:定义一个N*N二维数组,从键盘上输入值,找出每行中最大值组成一个一维数组并输出;

package Practise;import java.util.Arrays;
import java.util.Scanner;/*** @JdkVersion: 17* @Author: 二白程序员* @Date 2024/4/9 20:06* QQ:1512015112* VX:18056394367*/public class Demo11 {public static void main(String[] args) {
//        11:定义一个N*N二维数组,从键盘上输入值,找出每行中最大值组成一个一维数组并输出;System.out.println("输入n的值");Scanner scanner = new Scanner(System.in);int n= scanner.nextInt();int [][] a= new int[n][n];int []b=new int[n];for (int i = 0; i < a.length; i++) {System.out.println("第"+(i+1)+"行");for (int j = 0; j < a[i].length; j++) {a[i][j]= scanner.nextInt();}Arrays.sort(a[i]);b[i]=a[i][n-1];}for (int c : b){System.out.print(c+" ");}}
}

12:从键盘上输入一个 3*4 的整型数组,求出其中的最大值和最小值,并显示出

package Practise;import java.util.Scanner;/*** @JdkVersion: 17* @Author: 二白程序员* @Date 2024/4/9 20:22* QQ:1512015112* VX:18056394367*/public class Demo12 {public static void main(String[] args) {
//        12:从键盘上输入一个 3*4 的整型数组,求出其中的最大值和最小值,并显示出int [][] a = new int[3][4];int max=0 ,min=0;System.out.println("请输入数组");Scanner scanner = new Scanner(System.in);for (int i = 0; i < a.length; i++) {System.out.println("第"+(i+1)+"行");for (int j = 0; j < a[i].length; j++) {a[i][j]= scanner.nextInt();if (i==0){max = a[0][0];min = a[0][0];}if (a[i][j]>max){max=a[i][j];}if (a[i][j]<min){min=a[i][j];}}}System.out.println(max);System.out.println(min);}
}

13:有10个数字要求分别用选择法和冒泡法从大到小输出

package Practise;import java.util.Arrays;/*** @JdkVersion: 17* @Author: 二白程序员* @Date 2024/4/9 20:34* QQ:1512015112* VX:18056394367*/public class Demo13 {public static void main(String[] args) {
//        13:有10个数字要求分别用选择法和冒泡法从大到小输出//冒泡排序int[] a ={1,22,6,2,75,43,34,56,14,9};for (int i = 0;i<a.length-1;i++){for (int j =0;j<a.length-1-i;j++){if (a[j]<a[j+1]){int temp = a[j];a[j]=a[j+1];a[j+1]=temp;}}}System.out.println(Arrays.toString(a));}
}

package Practise;import java.util.Arrays;/*** @JdkVersion: 17* @Author: 二白程序员* @Date 2024/4/9 20:50* QQ:1512015112* VX:18056394367*/public class Demo13$2 {public static void main(String[] args) {
//                13:有10个数字要求分别用选择法和冒泡法从大到小输出//选择法int[] a ={1,22,6,2,75,43,34,56,14,9};for (int i = 0; i < a.length-1; i++) {for (int j = i+1; j < a.length; j++) {if (a[i]<a[j]){int temp = a[i];a[i]=a[j];a[j]=temp;}}}System.out.println(Arrays.toString(a));}
}

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

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

相关文章

MySQL-触发器

一、概述&#xff1a; Ⅰ、触发器是由 事件来触发 某个操作&#xff0c;这些事件包括 INSERT 、 UPDATE 、 DELETE 事件。就是指 用户的动作或者触发某项行为。如果定义了触发程序&#xff0c;当数据库执行这些语句时候&#xff0c;就相当于事件发生 了&#xff0c;就会 自动 …

Spring Cloud 集成 RabbitMQ

目录 前言步骤引入相关maven依赖添加相关配置 使用方法配置消息序列化创建第一个消息队列和交换机使用方法 总结 前言 在当今的微服务架构盛行的时代&#xff0c;消息队列作为一种重要的通信机制&#xff0c;在分布式系统中扮演着不可或缺的角色。RabbitMQ&#xff0c;作为一款…

ASP.NET公交车管理系统的实现与设计

摘 要 随着经济的日益增长&#xff0c;信息化时代已经到来&#xff0c;生活中各种信息趋向数字化、清晰化。公交车作为现代城市生活中一种重要的交通工具&#xff0c;其数量增多&#xff0c;车型也不再单一&#xff0c;雇用的司机增多&#xff0c;这样使得公交车公司的车辆信…

XTTS数据迁移方案

前置条件检查 XTTS使用限制较多&#xff0c;V3版本按照本节逐项检查 目标库操作系统不能是windows 源库&#xff1a;redhut 7.9 目标库&#xff1a;redhut 7.9 检查数据库时区&#xff08;两边都需要&#xff09; SQL> select dbtimezone from dual; 检查结果两边都一致…

系统架构设计与优化的几个关键点

1. 业务理解与需求分析 业务场景梳理&#xff1a;深入理解业务流程、业务规则、用户行为模式等&#xff0c;明确系统需要支持的核心功能和应用场景。非功能性需求识别&#xff1a;关注性能指标&#xff08;如响应时间、并发处理能力、数据吞吐量等&#xff09;、可用性要求&am…

机器学习和深度学习--李宏毅 (笔记与个人理解)Day 16

Day 16 deep Learning – 鱼与熊掌兼得 最近在减重&#xff0c; 昨天跑了个一公里&#xff0c;然后今天上午又打了个篮球&#xff0c;真是老胳膊老腿了&#xff0c;运动完给我困得不行 Review 见前面的笔记 这里说dl 会提供一个足够大的模型&#xff0c; 来使得Dall loss 足够小…

创业之路:从市场洞察到产品实现的全方位指南

创业是一项挑战性的旅程&#xff0c;需要综合考虑市场、产品、技术、团队等多个方面。在这篇文章中&#xff0c;我们将深入探讨如何更好地进行创业&#xff0c;从市场分析到产品实现的各个环节。 深入市场洞察 在创业之前&#xff0c;深入了解目标市场是至关重要的。我们需要…

Unity类银河恶魔城学习记录12-14 p136 Merge Skill Tree with Sword skill源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili CharacterStats.cs using System.Collections; using System.Collections.…

如何在CentOS中开放指定端口

本文将介绍在CentOS中如何通过firewalld和iptables开放指定端口。 一. firewalld 在CentOS系统中&#xff0c;firewalld是一个动态管理防火墙的守护进程&#xff0c;它提供了一个更加灵活和强大的防火墙管理工具。 以下是在CentOS 7和CentOS 8中使用firewalld开放指定端口的…

【Ubuntu】在 Windows 和 Ubuntu 之间传输文件

在 Ubuntu 上安装 Samba&#xff1a; sudo apt-get update sudo apt-get install samba在 Ubuntu 上创建一个共享文件夹并设置权限&#xff1a; mkdir /home/your_username/shared sudo chown nobody:nogroup /home/your_username/shared sudo chmod 0777 /home/your_username/…

【氮化镓】GaN HEMTs结温和热阻测试方法

文章《Temperature rise detection in GaN high-electron-mobility transistors via gate-drain Schottky junction forward-conduction voltages》&#xff0c;由Xiujuan Huang, Chunsheng Guo, Qian Wen, Shiwei Feng, 和 Yamin Zhang撰写&#xff0c;发表在《Microelectroni…

绿联HDMI延长器40265使用AG7120芯片放大器方案

HDMI延长器和放大器 延长器&#xff1a;主要用于HDMI线的延长&#xff0c;有HDMI对接头方式延长&#xff0c;或HDMI公头加HDMI母头的HDMI线进行延长&#xff0c;或通过网线方式延长&#xff0c;早期为双网线&#xff0c;目前已发展为单网线&#xff0c;需要注意的是&#xff0…

NLP_知识图谱_图谱问答实战

文章目录 图谱问答NERac自动机实体链接实体消歧 多跳问答neo4j_graph执行流程结构图![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/1577c1d9c9e342b3acbf79824aae980f.png)company_data![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/20f567d877c743b…

前后端AES对称加密 前端TS 后端Go

注意点 前后端的秘钥和偏移量IV都必须是16/24/32字节&#xff0c;且需要保持一致。 后端 func (receiver *basicUtils) AesDecrypt(str string) string {// 将加密字符串转换为字节数组encryptedData, _ : base64.StdEncoding.DecodeString(str)// 创建一个新的AES解密器key…

【core analyzer】core analyzer的介绍和安装详情

目录 &#x1f31e;1. core和core analyzer的基本概念 &#x1f33c;1.1 coredump文件 &#x1f33c;1.2 core analyzer &#x1f31e;2. core analyzer的安装详细过程 &#x1f33c;2.1 方式一 简单但不推荐 &#x1f33c;2.2 方式二 推荐 &#x1f33b;2.2.1 安装遇到…

TCP/IP 协议栈在 Linux 内核中的 运行时序分析

1、Linux内核概述 1.1 Linux内核结构 一个完整的Linux内核一般由5部分组成&#xff0c;它们分别是内存管理、进程管理、进程间通信、bai虚拟文件系统和网络接口。 1、内存管理 内存管理主要完成的是如何合理有效地管理整个系统的物理内存&#xff0c;同时快速响应内核各个子…

数据可视化基础与应用-04-seaborn库人口普查分析--如何做人口年龄层结构金字塔

总结 本系列是数据可视化基础与应用的第04篇seaborn&#xff0c;是seaborn从入门到精通系列第3篇。本系列主要介绍基于seaborn实现数据可视化。 参考 参考:我分享了一个项目给你《seaborn篇人口普查分析–如何做人口年龄层结构金字塔》&#xff0c;快来看看吧 数据集地址 h…

B3647 【模板】Floyd

【模板】Floyd 题目描述 给出一张由 n n n 个点 m m m 条边组成的无向图。 求出所有点对 ( i , j ) (i,j) (i,j) 之间的最短路径。 输入格式 第一行为两个整数 n , m n,m n,m&#xff0c;分别代表点的个数和边的条数。 接下来 m m m 行&#xff0c;每行三个整数 u …

dalle2介绍

dalle2是一个基于强化学习的图像生成模型&#xff0c;是dalle模型的改进版本。它由OpenAI团队开发&#xff0c;旨在生成高质量的、多样化的图像。 dalle2的核心思想是利用强化学习将图像生成过程转化为一个马尔可夫决策过程。它采用了一个称为"敌对生成网络"&#x…

7 种实现 CSS 三角形的原理与方法 以及 三角形在网页设计中的作用

三角形在网页设计中不仅是图形设计的基本元素&#xff0c;更是实现视觉引导、空间构建、情绪传达、品牌塑造、性能优化以及创新表达的重要工具。其广泛应用和多功能性使其成为设计师手中不可或缺的设计语言组成部分。本文介绍了7种CSS实现三角形的方法。 CSS实现三角形主要有以…