Java练习(四)——数组元素顺序移位

执键写春秋
• 阅读 1182

题目:一个数组有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。要求从控制台定义数组长度,并从控制台输入数据及顺序后移的位数。【位数不超过数组长度】

package test;

import java.util.Scanner;

public class Pratice4 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入数组的长度:");
        //接收控制输入的数组长度
        int length = scanner.nextInt();
        //定义一个长度为length的数组,用来存放元素
        int[] a = new int[length];
        for(int i=0;i<length;++i) {
            System.out.println("请输入第"+(i+1)+"个整数:");
            //元素存放数组中
            a[i] = scanner.nextInt();
        }
        //增强for循环输出数组元素
        System.out.print("你输入的数组为:");
        for (int i:a) {
            System.out.print(i + " ");
        }
        System.out.print("\n请输入向后移动的位数:");
        int run = scanner.nextInt();
        //定义一个辅助数组
        int[] b = new int[run];
        for (int i = 0; i < run; i++) {
            b[i] = a[length - run + i];
        }
        for (int i = length - 1; i >= run; i--) {
            a[i] = a[i - run];
        }
        for (int i = 0; i < run; i++) {
            a[i] = b[i];
        }
        System.out.print("位移后的数组是:");
        for (int i = 0; i < length; i++) {
            System.out.print(a[i] + " ");
        }

    }

}
输出:
请输入数组的长度:
8
请输入第1个整数:
9
请输入第2个整数:
12
请输入第3个整数:
6
请输入第4个整数:
3
请输入第5个整数:
7
请输入第6个整数:
5
请输入第7个整数:
1
请输入第8个整数:
16
你输入的数组为:9 12 6 3 7 5 1 16 
请输入向后移动的位数:4
位移后的数组是:7 5 1 16 9 12 6 3 
点赞
收藏
评论区
推荐文章
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
先知 先知
3年前
C 语言代码大全
1两个数组的合并题目描述已知数组a中有m个按升序排列的元素,数组b中有n个按降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。输入输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m,n均小于等于1000000。输出输出合并后的mn个整数,数据之间用空格隔开。输出占一行。样例输入4
Wesley13 Wesley13
3年前
Go 定长的数组
1.Go语言数组的简介  几乎所有的计算机语言都有数组,应用非常的广泛。同样,在Go语言中也有数组并且在数组的基础上还衍生出了切片(slice)。数组是一系列同一类型数据的集合,数组中包含的每个数据被称为数组元素,一个数组包含的元素个数被称为数组的长度,这是数组的基本定义。  在Go语言中数组是一个值类型(ValueType)
Wesley13 Wesley13
3年前
Java基础14
1.二位数组可以看成以数组为元素的数组2.java中多维数组的声明和初始化一样,应该从高维到低维的顺序进行,例如1intanewint3;2a0newint2;3a1newint4;4a2newint3;5inttnew
Wesley13 Wesley13
3年前
Java如何遍历二维数据
/\需求:二维数组遍历外循环控制的是二维数组的长度,其实就是一维数组的个数。内循环控制的是一维数组的长度。\/classArray2Test{publicstaticvoidmain(String\\args){//定义一个二维数组int\\\\arr{{1,2,3}
Stella981 Stella981
3年前
LeetCode 5561. 获取生成数组中的最大值
文章目录1\.题目2\.解题1\.题目给你一个整数n。按下述规则生成一个长度为n1的数组nums:nums00nums11当2<2i<n时,nums2inumsi
Stella981 Stella981
3年前
Seeker的奇妙求职历险(网易互联网笔试)
素数的个数给出一个包含n个正整数的数组a,把a\i\拆分为若干个和为a\i\的素数,求拆分后最多能有多少个素数。第一行数据为n,表示数组长度,第二行为n个元素。输入3111输出01不可拆分输入135761为0个,3为1个,5为(2,3
Wesley13 Wesley13
3年前
Java基础语法:数组
一、简介描述:数组是相同类型数据的有序集合。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。基本特点:1.数组的长度是确定的。数组一旦被创建,它的大小就是不可以改变的。2.数组元素必须是相同类型,不允许
Stella981 Stella981
3年前
LeetCode:283.移动零——简单
题目:283.移动零:给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入:0,1,0,3,12输出:1,3,12,0,0说明:1.必须在原数组上操作,不能拷贝额外的数组。2.尽量减少操作
Wesley13 Wesley13
3年前
C语言利用动态数组实现顺序表(不限数据类型)
实现任意数据类型的顺序表的初始化,插入,删除(按值删除;按位置删除),销毁功能。、顺序表结构体  实现顺序表结构体的三个要素:(1)数组首地址;(2)数组的大小;(3)当前数组元素的个数。1//顺序表结构体2structDynamicArray{3voidaddr;//指向数组的首地址(