Java 编程问题 求大神写完整过程 谢谢~

数组a中存有n个整数,输出数组a中的值后,将a中各数顺序向后移m个位置,最后m个数变成最前面的m个数,再输出数组a。... 数组a中存有n个整数,输出数组a中的值后,将a中各数顺序向后移m个位置,最后m个数变成最前面的m个数,再输出数组a。 展开
 我来答
J001先生
2015-06-28 · TA获得超过142个赞
知道小有建树答主
回答量:96
采纳率:83%
帮助的人:73.4万
展开全部

我简单写了一个例子,可以参考下:

import java.util.Arrays;

public class IntegerArrayMoveExample {

public static void main(String[] args) {
// test
int[] arr={1,2,3,4,5,6,7,8,9,0};
arrayMove(arr,5);
}

/**
 * 数组向右移动m位
 * @param arr 原数组
 * @param position 向右移动的位数,即m
 */
public static void arrayMove(int[] arr, int position) {
// output array
System.out.println("arr:    "+Arrays.toString(arr));
// 移动的位数m大于数组长度,求余数
int len = arr.length;
if (position>len) {
position=position%len;
}

int[] newArr=new int[len];
// 先移动原数组后面的m位,放到新数组0~m-1位置
System.arraycopy(arr, len-position-1, newArr, 0, position);
// 再将原数组的0~len-m-1放到新数组的从m位置开始
System.arraycopy(arr, 0, newArr, position, len-position);

// output new array
System.out.println("newarr: "+Arrays.toString(newArr));
}

}

输出结果:

arr:    [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

newarr: [5, 6, 7, 8, 9, 1, 2, 3, 4, 5]

有不懂地方可以问我。

好东东fhh
推荐于2016-01-05 · TA获得超过190个赞
知道小有建树答主
回答量:298
采纳率:100%
帮助的人:186万
展开全部
public class MinimalElements {



public static void main(String[] args){

Scanner sc=new Scanner(System.in);
System.out.println("请输入n和m的值:");
int n=sc.nextInt(),m=sc.nextInt();
int a[]=new int[n];
for(int i=0;i<n;i++){
System.out.println("请输入数组a的第"+(i+1)+"个元素:");
a[i]=sc.nextInt();
}
for(int i=0;i<n;i++){
System.out.print("数组a的第"+(i+1)+"个元素为:"+a[i]+"\n");
}

int l=a.length-1;
int[] clone=a.clone();//需要克隆一个新的数组,因为之前的数组在第一次排序后各个元素的值都改变了
for(int i=l;i>=0;i--){
int p=i-m;
if(p>=0){int zan=a[p];a[p]=a[i];a[i]=zan;}
else{p=p+1; a[l+p]=clone[i];
}
}

System.out.println("往后移了"+m+"位的数组为");

for(int i=0;i<n;i++){
System.out.print("数组a的第"+(i+1)+"个元素为:"+a[i]+"\n");
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-06-28
展开全部
10个币没人做的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万渺A
2015-06-28 · TA获得超过209个赞
知道小有建树答主
回答量:304
采纳率:0%
帮助的人:212万
展开全部
利用数组复制方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式