A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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;
                }
        }
}

6 个回复

倒序浏览
赞一个,,
回复 使用道具 举报
  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. }
复制代码



回复 使用道具 举报
什么编程语言能和Java搭配在一起做web开发?
回复 使用道具 举报
可以啊 楼主 你自己写出来的吗?我昨天也是刚学的,还只能写一点简单的,这个太复杂了对我来说
回复 使用道具 举报
厉害!厉害!!!
回复 使用道具 举报
HMSK 中级黑马 2016-9-14 16:32:04
7#
数组反转方法的另一种写法:
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];
    }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马