Java基础练习题03 数组

2023-11-10

1、定义一个数组来存储12个学生的成绩{72,89,65,58,87,91,53,82,71,93,76,68},
统计各成绩等级(90分以上为‘A’,8089分为‘B’,7079分为‘C’,60~69分为‘D’,60分以下为E)学生人数,
并将其放入到数组count中,其中:count[0]存E级的人数,count[1]存D级的人数,……,count[4]存A级的人数

public static void main(String[] args) {
        int[] count=new int[5];
        int[] a={72,89,65,58,87,91,53,82,71,93,76,68};
        for (int i = 0; i < a.length; i++) {
            if (a[i]>=90){
                count[4]++;
            }else if (a[i]>=80&& a[i]<90){
                count[3]++;
            }else if (a[i]>=70&& a[i]<80){
                count[2]++;
            }else if (a[i]>=60&& a[i]<70){
                count[1]++;
            }else {
                count[0]++;
            }
        }
        System.out.println("90分以上的有:"+count[4]);
        System.out.println("80~89分为B的有:"+count[3]);
        System.out.println("70~79分为C的有:"+count[2]);
        System.out.println("60~69分为D的有:"+count[1]);
        System.out.println("60分以下为E的有:"+count[0]);
    }

2、从键盘输入8个整数存放在一个数组中,然后将奇数和偶数分别存入到两个不同的数组中,
并按奇数、偶数交替的顺序输出这两个数组中的所有数据
(先交替输出,如果奇数个数多,则再输出剩下的奇数,如果偶数个数多,则再输出剩下的偶数)。
(提示与要求:
(1)定义一个数组存储从键盘输入的8个整数,先判断这8个整数中奇数和偶数的个数,才能定义存储奇数和偶数的数组的长度;
(2)把一个大的数组分别存放在奇数和偶数数组中并交替输出的过程定义为方法)

public static void main(String[] args) {
        int[] a=new int[8];

        for (int i = 0; i < 8; i++) {
            System.out.println("请输入第"+(i+1)+"个整数");
            Scanner ar= new Scanner(System.in);
            a[i]=ar.nextInt();
        }
        chose01(a);
    }
    public static void chose01(int a[]){
        int x=0,y=0;
        for (int i = 0; i < a.length; i++) {
            if (a[i]%2==0){
                x++;
            } else {
                y++;
            }
        }
        int[] o=new int[x];
        int[] ji=new int[y];
        int r1=-1;
        int r2=-1;
        for (int i = 0; i < a.length; i++) {
            if (a[i]%2==0){
                r1++;
                o[r1]=a[i];
            } else {
                r2++;
                ji[r2]=a[i];
            }
        }
        int[] b=new int[a.length];

        System.out.println("输入的八个数为:");
        for (int t1:a){
            System.out.print(t1+" ");
        }
        System.out.println();
        System.out.println("其中奇数为:");
        for (int t2:ji){
            System.out.print(t2+" ");
        }
        System.out.println();
        System.out.println("其中偶数为:");
        for (int t3:o){
            System.out.print(t3+" ");
        }
        System.out.println();
        System.out.println("奇偶交叉输出为:");
        if (ji.length>o.length){
            for (int i = 0; i < o.length; i++) {
                System.out.print(ji[i]+" "+o[i]+" ");
            }
            for (int i = o.length; i <ji.length ; i++) {
                System.out.print(ji[i]+" ");
            }
            System.out.println();
        }else {
            for (int i = 0; i < ji.length; i++) {
                System.out.print(ji[i]+" "+o[i]+" ");
            }
            for (int i = ji.length; i <o.length ; i++) {
                System.out.print(o[i]+" ");
            }
        }
    }

3、定义一个数组,数组成员10个,找出数组中最大数连同下标一起输出

public static void main(String[] args) {
        int[] a={5,3,1,6,7,2};
        int max=a[0];
        int x=0;
        for (int i = 1; i < a.length; i++) {
            if (max<a[i]){
                max=a[i];
                x=i;
            }
        }
        System.out.println("数组的最大值为"+"a["+x+"]="+max);
    }

4、给定一个整型数组,数组成员10个,求该数组中第二大的数的下标

public static void main(String[] args) {
        int[] a={5,3,1,6,7,2};
        int max1=a[0];
        int max2=a[0];
        int x=0;
        int y=0;
        for (int i = 1; i < a.length; i++) {
            if (max1<a[i]){
                max1=a[i];
                x=i;
            }
        }
        for (int i = 1; i < a.length; i++) {
            if (max2<a[i]&&a[i]!=max1){
                max2=a[i];
                y=i;
            }
        }
//        System.out.println("数组的最大值为"+"a["+x+"]="+max1);
        System.out.println("数组的第二大值为"+"a["+y+"]="+max2);
    }

5、B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分?

public static void main(String[] args) {
        int[] a={5,3,8,6,7,2,9,6,7,8};
        int max=a[0];
        int min=a[0];
        int sum=0;
        double avg;
        for (int i = 1; i < a.length; i++) {
            if (max<a[i]){
                max=a[i];
            }else if (min>a[i]){
                min=a[i];
            }
            sum+=a[i];
        }
        avg=(double) (sum+a[0]-max-min)/(a.length-2);
        System.out.println("数组的最大值为"+max);
        System.out.println("数组的最小值为"+min);
        System.out.println("去掉一个最高分一个最低分后的平均分为:"+avg);
    }

6、定义数组,存放5个学生的成绩【成绩值自己设定】,将成绩从大到小排序,获得成绩之和,平均成绩,最小成绩,最大成绩。

public static void main(String[] args) {
        int[] a=new int[5];
        int sum=a[4];
        double avg=0;
        for (int i = 0; i < 5; i++) {
            Scanner sr=new Scanner(System.in);
            a[i]=sr.nextInt();
        }
        //需要遍历a.length-1遍
        for (int i = 0; i < a.length-1; 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.print("五位同学的成绩从小到大排序为:");
        for (int i = 0; i <a.length; i++) {
            sum+=a[i];
            System.out.print(a[i]+" ");
        }
        avg=(double)sum/a.length;
        System.out.println();
        System.out.println("五位同学的成绩之和为:"+sum);
        System.out.println("五位同学的平均成绩为:"+avg);
        System.out.println("五位同学的最大成绩为:"+a[0]);
        System.out.println("五位同学的最小成绩为:"+a[4]);
    }

7、提取一个方法,将指定数组中的数组元素进行反转
例如:{10,23,2,45,6}—>{6,45,2,23,10}

public static void main(String[] args) {
        int[] a = {10, 23, 2, 45, 6,9};
        System.out.println("原数组为:");
        for (int x:a){
            System.out.print(x+" ");
        }
        for (int i = 0; i < a.length / 2; i++) {
            int temp = a[i];
            a[i] = a[a.length - i - 1];
            a[a.length - i - 1] = temp;
        }
        System.out.println();
        System.out.println("反转后数组为:");
        for (int x:a){
            System.out.print(x+" ");
        }
    }

8、现在有如下的一个数组:
int[] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:
int[] newArr = {1,3,4,5,6,6,5,4,7,6,7,5} ;

public static void main(String[] args) {
        int[] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
        int[] newArr = new int[12];
        int n=-1;
        System.out.println("原数组为:");
        for (int x:oldArr){
            System.out.print(x+" ");
        }
        for (int i = 0; i < oldArr.length; i++) {
            if (oldArr[i]!=0){
                n++;
                newArr[n]=oldArr[i];
            }
        }
        System.out.println();
        System.out.println("去掉0后的新数组为:");
        for (int x:newArr){
            System.out.print(x+" ");
        }
    }

9、现在给出两个数组:
数组a:“1,7,9,11,13,15,17,19”
数组b:“2,4,6,8,10”
两个数组合并为数组c。

public static void main(String[] args) {
        int[] a={1,7,9,11,13,15,17,19};
        int[] b={2,4,6,8,10};
        int[] c=new int[a.length+b.length];
        //方法一:
        System.arraycopy(a,0,c,0,a.length);
        System.arraycopy(b,0,c,a.length,b.length);
        System.out.println(Arrays.toString(c));
        //方法二:
        /*int n=-1;
        int m=-1;
        for (int i = 0; i <a.length+b.length ; i++) {
            n++;
            if (i<a.length){
                c[n]=a[i];
            }else {
                m++;
                c[n]=b[m];
            }
        }
        System.out.println("a数组为:");
        for (int x:a){
            System.out.print(x+" ");
        }
        System.out.println();
        System.out.println("b数组为:");
        for (int y:b){
            System.out.print(y+" ");
        }
        System.out.println();
        System.out.println("a和b数组合并之后为:");
        for (int z:c){
            System.out.print(z+" ");
        }*/
    }

10、找到在第一个数组array1中出现,而在第二个数组array2中没有出现的数字。

public static void main(String[] args) {
            int[] array1={1,2,3,4,13,5,6,7,8,9};
            int[] array2={9,8,1,2,3,4,6,7,9};
            System.out.println("在第一个数组array1中出现,而在第二个数组array2中没有出现的数字有:");
       outo: for (int i = 0; i < array1.length; i++) {
            for (int j = 0; j < array2.length+1; j++) {
                if(j<array2.length){
                    if (array1[i]!=array2[j]){
                        continue;
                    }else {
                        break;
                    }
                }else {
                    System.out.print(array1[i]+" ");
//                    break outo;
                }
                }
            }
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java基础练习题03 数组 的相关文章

  • 如何在测试套件中定义 JUnit 方法规则?

    我有一个类 它是 JUnit 测试类的 JUnit 套件 我想定义一个规则on the suite 这是可以做到的 但需要做一些工作 您还需要定义自己的 Suite 运行程序和测试运行程序 然后在测试运行程序中重写 runChild 使用以
  • 是否可以在 Spring Batch 中结合分区和并行步骤?

    我只是想知道它在 Spring Batch 中可行吗 Step1Step2 流程 gt 流程1 流程2 流程3 Step3 其中每个flow1 gt 划分为 5 个 GridSizeflow2 gt 划分为 5 个 GridSizeflow
  • Spring控制器是线程安全的吗

    我遇到了这个控制器示例 想知道它是否是线程安全的 我特别想知道 gson 实例变量 import org springframework stereotype Controller import org springframework we
  • MP3:一种以毫秒为单位获取任何给定字节位置的位置的方法?

    我创建了一个 servlet 它返回从客户端请求的任何给定字节位置开始的流 来自 MP3 文件 这允许客户端在任何给定字节位置立即开始播放 而无需进行任何本地查找 现在 我有一个滑块可以直观地显示进度 我正在使用当前字节位置来更新滑块 但是
  • 如何在 Eclipse 中用阿拉伯语读写

    我在 eclipse 中编写了这段代码来获取一些阿拉伯语单词 然后打印它们 public class getString public static void main String args throws Exception PrintS
  • 将链接对象转换为流或集合

    我想迭代堆栈跟踪 堆栈跟踪由可抛出对象组成 其 getCause 返回下一个可抛出对象 最后一次调用 getCause 返回 null 示例 a gt b gt null 我尝试使用 Stream iterable 这会导致 NullPoi
  • 有没有好的方法来解析用户代理字符串?

    我有一个Java接收模块User Agent来自最终用户浏览器的字符串的行为需要略有不同 具体取决于浏览器类型 浏览器版本甚至操作系统 例如 FireFox 7 0 Win7 Safari 3 2 iOS9 我明白了User Agent由于
  • Java 泛型/类型调度问题

    考虑以下程序 import java util List import java util ArrayList public class TypeTest public static class TypeTestA extends Type
  • Java 重写 hashCode() 得到 StackOverflowError

    所以我不太熟悉重写 hashCode 并且我似乎在 hashCode 方法中以某种方式进行了一些无限递归 这是我的场景 我有一个 DuplicateCache 类 它是一个缓存对象 用于检查系统中的重复对象 我有一个静态内部类 Duplic
  • 如何将 Spotlight for Help 插入本地化的 macOS 应用程序?

    我正在 macOS 上使用 Swing GUI 框架实现 Java 应用程序 当使用system外观和感觉以及screen菜单栏 Swing 自动插入一个搜索栏 called 聚光灯寻求帮助 https developer apple co
  • 场景生成器删除 fxml 文件中的导入

    我使用场景构建器 Gluon Scene Builder JavaFX Scene Builder 8 1 1 来创建应用程序的 UI 并使用 Eclipse 开发 JavaFX 现在 每次我在场景生成器中保存某些内容时 它都会从 fxml
  • 使用 Java 在浏览器中下载 CSV 文件

    我正在尝试在 Web 应用程序上添加一个按钮 单击该按钮会下载一个 CSV 文件 该文件很小 大小仅约 4KB 我已经制作了按钮并附加了一个侦听器 文件也准备好了 我现在唯一需要做的就是创建单击按钮时下载 csv 文件的实际事件 假设 fi
  • 所有junit测试后的清理

    在我的项目中 我必须在所有测试之前进行一些存储库设置 这是使用一些棘手的静态规则来完成的 然而 在所有测试之后我不知道如何进行清理 我不想保留一些神奇的静态数字来引用所有测试方法的数量 我应该一直维护它 最受赞赏的方法是添加一些侦听器 该侦
  • 尝试在没有 GatewayIntent 的情况下访问消息内容

    我希望每当我写一条打招呼的消息时 机器人都会在控制台中响应一条消息 但它只是给我一个错误 JDA MainWS ReadThread WARN JDA Attempting to access message content without
  • 不兼容的类型:在 java netbeans 中对象无法转换为 String

    我试图在我的项目中使用对象数组 但出现错误 incompatible types Object cannot be converted to String 在这一行 ST1 new String emt1 emt2 emt3 emt4 现在
  • 从 Stax XMLStreamReader 读取以解组部分

    我正在使用 Stax 游标 API 从大型 xml 文件中提取数据 当前 我转到特殊标签的开头并使用 JAXB 解组该标签 这对于格式良好的 xml 文件效果很好 但不久前我有一个文档 其中数十万个标签中有一个未关闭 JAXB 使用 XML
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • 如何将实例变量传递到 Quartz 作业中?

    我想知道如何在 Quartz 中外部传递实例变量 下面是我想写的伪代码 如何将 externalInstance 传递到此作业中 public class SimpleJob implements Job Override public v
  • Java中获取集合的幂集

    的幂集为 1 2 3 is 2 3 2 3 1 2 1 3 1 2 3 1 假设我有一个Set在爪哇中 Set
  • Spring Boot MSSQL Kerberos 身份验证

    目前在我的春季靴子中application properties文件中 我指定以下行来连接到 MSSql 服务器 spring datasource url jdbc sqlserver localhost databaseName spr

随机推荐

  • 为什么需要对数值类型的特征做归一化?

    为什么需要对数值类型的特征做归一化 1 举例子 比如分析一个人的身高和体重对健康的影响 身高的单位是m 范围是1 6 1 8 体重的单位是kg 在50kg 100kg之间 分析出的结果自然会倾向于数值差异较大的体重特征 因此我们需要数值归一
  • 新版Spring Boot(10)- Spring Boot 整合数据持久层(1)

    1 整合JdbcTemplate Service Description TODO Author tzb Date 2021 8 22 10 23 Version 1 0 Service public class UserService A
  • 【Mysql】删除表记录,并限制条数

    删除表数据 好删 那如果要限制条数 如何删除呢 例如 有个表tag list 我要删除aid为6666的前100条数据 sql如下 删除表记录limit限制条数 delete from tag list where aid 6666 lim
  • JUC 六. 线程中断 与 LockSupport

    目录 一 基础理解 如何退出一个线程 volatile 与 AtomicBoolean 中断线程示例 Thread中自带的中断api示例 阻塞状态线程中断时异常解决 二 Thread中自带的中断底层分析 三 总结 一 基础理解 先了解几个问
  • 打印九九口诀表(pta练习题)

    下面是一个完整的下三角九九口诀表 本题要求对任意给定的一位正整数N 输出从1 1到N N的部分口诀表 输入格式 输入在一行中给出一个正整数N 1 N 9 输出格式 输出下三角N N部分口诀表 其中等号右边数字占4位 左对齐 include
  • AIDL原理和相关文件解析

    Binder概述 相信从事Android相关的研发人员 都对Binder有个或多或少的了解 相关技术博客也有一大推 我今天对Binder的学习过程进行一个记录 理论性的叙述会少一点 更多的是基于AS自动生成的AIDL文件进行代码分析 但读者
  • 【Java基础】使用Java 8的Stream API来简化Map集合的操作

    在 Java 8 中引入的 Stream API 是一种非常强大的函数式编程工具 可以帮助开发者更加方便地对集合进行操作和处理 而在 Map 集合中 Stream API 的使用也能够极大地简化代码 并提升程序效率和可读性 在本文中 我们将
  • 网络基础通过子网掩码 计算主机数网络范围

    192 168 11 16 27 主机的个数为32 27 5 2 5 32 32 2 30主机数为30 主机范围是0 31 63 95 必须是32的倍数 16在0 32之间 31是广播地址 网络号是192 168 11 0
  • 白话学习防火墙3 之防火墙工作模式(适用于IPS、IDS、WAF等其他安全设备)

    说白了 透明模式就是当交换机使 路由模式就是当路由使 混杂就是杂交物种 即当作路由使 又当作交换机使 透明模式 透明模式一般用于网络建设完 网络功能基本已经实现的情况下 用户需要加装防火墙以实现安全区域隔离的要求 早期也称之为桥模式 桥这个
  • jvm的内存模型之eden区

    浅谈java内存模型 不同的平台 内存模型是不一样的 但是jvm的内存模型规范是统一的 其实java的多线程并发问题最终都会反映在java的内存模型上 所谓线程安全无 非是要控制多个线程对某个资源的有序访问或修改 总结java的内存模型 要
  • 如何完成卷积神经网络有关的毕业设计

    前言 毕业设计对于每个学生而言都是一种十分痛苦的渡劫仪式 尤其是当你拿到的是完全陌生的毕业设计的时候 内心无疑有各种王尼玛从心中飘过 我在这里聊聊我在完成毕设的过程中得到的一些经验教训 因为我的毕业设计主题是卷积神经网络 所以在这里我的话题
  • 【云计算与数据中心规划】【期末复习题】【2022秋】

    文章目录 一 单选题 共7题 二 多选题 共15题 三 填空题 共7题 四 判断题 共5题 五 简答题 共7题 Reference 题量 41 满分 100 0 一 单选题 共7题 1 以下哪个虚拟机系统可以独立安装在计算机硬件之上 不需要
  • 什么是整洁的代码

    点击蓝色 五分钟学算法 关注我哟 加个 星标 天天中午 12 15 一起学算法 作者 xybaby 来源 https www cnblogs com xybaby p 11335829 html 写出整洁的代码 是每个程序员的追求 clea
  • opengl es3.0学习篇八:纹理

    OpenGL ESMIP 开发十年 就只剩下这套架构体系了 gt gt gt 学习内容来源and参考 opengl es 3 0编程指南 https www jianshu com p 4d8d35288a0f 3D图形渲染最基本的操作之一
  • 05 神经网络语言模型(独热编码+词向量的起源)

    博客配套视频链接 https space bilibili com 383551518 spm id from 333 1007 0 0 b 站直接看 配套 github 链接 https github com nickchen121 Pr
  • 基于opencv的家居智能安防机器视觉系统

    基于opencv的家居智能安防机器视觉系统 关键词 Windows 树莓派 python opencv 1 写在前面的话 大学4年很快过去了 因为疫情原因我们从大四上学期结束之后直接跳到了大学的尾声 毕业设计 毕业答辩 毕业的环境 回顾整个
  • 树莓派基础之外设开发编程

    外设开发篇 一 树莓派外设开发接口 二 树莓派wiringPi库 三 树莓派控制继电器 四 继电器组硬件控制开发 五 超声波模块介绍 六 串口通信协议概述 七 树莓派和语音模块的综合应用 一 树莓派外设开发接口 树莓派的接口 对主控芯片来说
  • 江西省电子专题大赛考点讲解三:CD4017_五阶约翰逊十进制计数器

    芯片引脚图 图CD4017 1 CD4017芯片引脚图 芯片功能概述 表CD4017 2 CD4017芯片真值表 图CD4017 3 CD4017芯片时序图 芯片实例讲解 实例一 输出十进制0 9 图CD4017 4 利用CD4017芯片作
  • Java 基础进阶篇(十八):正则表达式匹配规则和应用

    文章目录 一 正则表达式概述 二 正则表达式的匹配规则 三 正则表达式在方法中的应用 3 1 校验手机号 邮箱和座机电话号码 3 2 字符串的内容替换和分割 四 编程题目 4 1 表示数值的字符串 4 2 非严格递增连续数字序列 一 正则表
  • Java基础练习题03 数组

    1 定义一个数组来存储12个学生的成绩 72 89 65 58 87 91 53 82 71 93 76 68 统计各成绩等级 90分以上为 A 8089分为 B 7079分为 C 60 69分为 D 60分以下为E 学生人数 并将其放入到