数组元素反转 奇数下标进行交换

来源:互联网 发布:安徽中港金融数据服务 编辑:程序博客网 时间:2024/05/22 14:36
/*(1)键盘录入6个int类型的数据存数数组arr中
(2)将arr数组中的内容反转
(3)将翻转后的数组下标为奇数的互相交换 1和3换, 3和5换,以此类推
(4)最后将数组最后一个角标为奇数的元素 和数组中
第一个角标为奇数的元素交换
(5)打印最终的数组(实现了1-4步之后的数组)

(6)如:用户输入的6个int数字为[1,2,3,4,5,6],

                 在这里我就直接写一个数组初始化 就不通过键盘默认输入了

          */


package com.heima.array;


public class ArrayDemo2 {


public static void main(String[] args) {
/*(1)键盘录入6个int类型的数据存数数组arr中
(2)将arr数组中的内容反转
(3)将翻转后的数组下标为奇数的互相交换 1和3换, 3和5换,以此类推
(4)最后将数组最后一个角标为奇数的元素 和数组中
第一个角标为奇数的元素交换
(5)打印最终的数组(实现了1-4步之后的数组)
(6)如:用户输入的6个int数字为[1,2,3,4,5,6],*/
//1.0定义一个数组
int [] arr={1,2,3,4,5,6};
//遍历原始数组
getInfo(arr);
//2.0写个反转的数组方法 返回一个新的数组
        arr=fanZhuang(arr);
        System.out.println("反转后的数组是");
        //遍历一下我反转的数组
        getInfo(arr);
        System.out.println();
        //for循环进行奇数交换  所以i+=2 等于i=i+2
        for (int i = 1; i <arr.length; i+=2) {
        //调用交换方法 传入反转数组 把i给进去 
getJiaoHuan(arr,i,((i+2)%6));
//等于对6取余那么就是奇数
}
        getInfo(arr);
}
//遍历数组元素
private static void getInfo(int[] arr) {
for (int i : arr) {
System.out.print(i+" ");
}
}
//数组反转操作
     public static int[] fanZhuang(int[] arr){
    //定义一个新的数组
    int [] num=new int[arr.length]; 
    int count=0; //定义一个默认下标
    //反转遍历数组
    for (int i =arr.length-1; i >=0; i--) {
    num[count]=arr[i];//把原始数组元素赋值给新数组
    count++; //新数组下标自增
}
    return num; //返回新数组
     } 
     //交换
     public static void getJiaoHuan(int[] arr,int i,int j){
    //定义一个第三方变量进行交换 
    int temp=arr[i];
    arr[i]=arr[j];
    arr[j]=temp;
     }
}

0 0
原创粉丝点击