黑马程序员技术交流社区

标题: 键盘录入6个int类型的数据存数数组arr中,反转数组 [打印本页]

作者: liyansong2016    时间: 2016-6-7 22:20
标题: 键盘录入6个int类型的数据存数数组arr中,反转数组
import java.util.Scanner;
class Test18 {
        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],最后输出的结果为[6, 5, 4, 1, 2, 3]*/
                //键盘录入六个数字
                Scanner sc = new Scanner(System.in);
                System.out.print("请输入第一个:");
                int a = sc.nextInt();
                System.out.print("请输入第二个:");
                int b = sc.nextInt();
                System.out.print("请输入第仨个:");
                int c = sc.nextInt();
                System.out.print("请输入第四个:");
                int d = sc.nextInt();
                System.out.print("请输入第五个:");
                int e = sc.nextInt();
                System.out.print("请输入第六个:");
                int f = sc.nextInt();
                int[] arr = {a,b,c,d,e,f};

                reverseArry(arr);                //反转方法
                reverseJi(arr,1,arr.length/2);///没做出来
                printArry(arr);                        //输出方法
               
        }
        //奇数的元素交换
        public static void reverseJi(int[] arr,int a ,int b){
               
                                int temp = arr[a];
                                arr[a] = arr[b];
                                arr[b] = temp;
                       
        }
        //输出方法
        public static void printArry(int[] arr){
                for (int i=0; i<arr.length; i++) {
                        System.out.print(arr[i]+" ");
                }
                System.out.println();
        }
        //顺序反转方法
        public static void reverseArry(int[] arr){               
                for (int i=0; i<arr.length/2; i++) {
                        int temp = arr[i];
                        arr[i] = arr[arr.length-1-i];
                        arr[arr.length-1-i] = temp;
                }
        }
}
作者: nanliner    时间: 2016-6-7 23:17
赞一个,,
作者: 我是你岁哥❤环    时间: 2016-6-8 00:09
  1. </blockquote></div><div class="blockcode"><blockquote>import java.util.Scanner;

  2. class Test {

  3.         public static void main(String[] args) {
  4.                 Scanner scan = new Scanner(System.in);
  5.                 int[] arr = new int[6];

  6.                 System.out.println("键盘录入6个int类型的数据存数数组arr中\n");
  7.                 for (int i=0; i<arr.length; i++) {
  8.                         System.out.println("请输入第 " + (i+1) +" 个数");
  9.                         arr[i] = scan.nextInt();
  10.                 }

  11.                 //打印数组
  12.                 printArray(arr);
  13.                 //将arr数组中的内容反转
  14.                 System.out.println("\n将arr数组中的内容反转");
  15.                 reverseArray(arr);
  16.                 printArray(arr);

  17.                 //将翻转后的数组角标为奇数的互相交换
  18.                 System.out.println("\n将翻转后的数组角标为奇数的互相交换");
  19.                 swapArray(arr);
  20.                 printArray(arr);

  21.                 //将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
  22.                 System.out.println("\n将数组最后一个角标为奇数的元素和数组中第一个角标为奇数的元素交换");
  23.                 swapArray2(arr);
  24.                 printArray(arr);

  25.         }

  26.         //反转数组中的内容
  27.         public static void reverseArray(int[] arr) {

  28.                 for (int i=0; i<arr.length/2; i++) {

  29.                         swap(arr, i, arr.length-1-i);
  30.                        
  31.                 }

  32.         }

  33.         //交换数组中索引为 i 和 j 的两个元素
  34.         public static void swap(int[] arr, int i, int j) {
  35.                
  36.                 int temp = arr[i];
  37.                 arr[i] = arr[j];
  38.                 arr[j] = temp;

  39.         }

  40.         //打印数组
  41.         public static void printArray(int[] arr) {

  42.                 System.out.print("[ ");
  43.                 for (int i=0; i<arr.length; i++) {
  44.                         if (i == arr.length-1) {
  45.                                 System.out.println(arr[i] + " ]");
  46.                         } else {
  47.                                 System.out.print(arr[i] + ", ");
  48.                         }
  49.                 }

  50.         }

  51.         //数组角标为奇数的互相交换
  52.         public static void swapArray(int[] arr) {

  53.                 for (int i=1; (i+2)<arr.length; i+=2) {

  54.                         swap(arr, i, i+2);

  55.                 }
  56.         }

  57.         //数组最后一个角标为奇数的元素和数组中第一个角标为奇数的元素交换
  58.         public static void swapArray2(int[] arr) {
  59.                 //当数组的长度是偶数时,数组的最后一个元素就是最后一个角标为奇数的元素
  60.                 //当数组的长度是奇数时,数组的倒数第二个元素就是最后一个角标为奇数的元素
  61.                 if (arr.length % 2 == 0) {
  62.                         swap(arr, 1, arr.length-1);
  63.                 } else {
  64.                         swap(arr, 1, arr.length-2);
  65.                 }

  66.         }

  67. }
复制代码




作者: 暴雨    时间: 2016-6-8 00:17
什么编程语言能和Java搭配在一起做web开发?
作者: 929710618    时间: 2016-6-8 00:22
可以啊 楼主 你自己写出来的吗?我昨天也是刚学的,还只能写一点简单的,这个太复杂了对我来说
作者: 九局下半    时间: 2016-9-14 14:19
厉害!厉害!!!
作者: HMSK    时间: 2016-9-14 16:32
数组反转方法的另一种写法:
public static void reverseArray(int[] arr){
    for(int min=0,max=arr.length-1;max>=min;min++,max--){
        temp = arr[min];
        arr[min] = arr[max];
        arr[max] = arr[min];
    }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2