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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© axiaowenjin 中级黑马   /  2016-7-4 23:47  /  592 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

3.分析以下需求,并用代码实现:(扩展)
        (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]

3 个回复

倒序浏览
public class LoL {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);// 创建键盘录入对象
                System.out.println("6个int类型的数据:");
                int[] arr = new int[6];// 定义一个整型数组
                for (int i = 0; i < 6; i++) { // 键盘录入6个int类型数据并存数数组arr中
                        arr[i] = sc.nextInt();
                }
                reverse(arr);// 将arr数组中的内容反转
                exchange(arr);// 将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
                change(arr);// 将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
                printArray(arr);// 打印最终的数组
        }

        // 遍历数组
        public static void printArray(int[] arr) {
                System.out.print("[");
                for (int i = 0; i < arr.length; i++) {
                        if (i == arr.length - 1) {
                                System.out.print(arr[i] + "]");
                        } else {
                                System.out.print(arr[i] + ",");
                        }
                }
        }

        // 将arr数组中的内容反转
        public static void reverse(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;
                }
        }

        // 数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
        public static void exchange(int[] arr) {
                for (int i = 0; i < arr.length; i ++) {
                        if(i%2!=0&&(i+2)<=(arr.length-1)){
                                int temp = arr[i];
                                arr[i] = arr[i + 2];
                                arr[i + 2] = temp;
                        }
                }
        }

        // 将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
        public static void change(int[] arr) {
                for (int i = 0; i < arr.length; i ++) {
                        if ((i + 2) >(arr.length - 1)) {
                                int temp = arr[1];
                                arr[1] = arr[i];
                                arr[i] = temp;
                        }
                }
        }
}
回复 使用道具 举报
  1. import java.util.Scanner;
  2. class Test4 {
  3.         public static void main(String[] args) {
  4.                 Scanner sc = new Scanner(System.in);        //创建键盘录入对象
  5.                 int[] arr = new int[6];        //2 5 8 9 7 1
  6.                 int i = 0;
  7.                 while (i < 6) {
  8.                         System.out.println("请录入数组索引为"+i+"的元素");
  9.                         arr[i] = sc.nextInt();
  10.                         ++i;
  11.                 }
  12.                 //print(arr);        打印键盘录入的数组
  13.                 revArray(arr);
  14.                 //print(arr);                打印反转后的数组
  15.                 JiaoHuan(arr);
  16.                 //print(arr);                //打印1和3换, 3和5换,以此类推后的数组

  17.                 int first = getFirstMark(arr);
  18.                 //System.out.println(first);        输出数组中第一个出现的奇数
  19.                 int fin = getFinalMark(arr);
  20.                 //System.out.println(fin);        输出数组中最后出现的奇数
  21.                
  22.                 JiaoHuanMark(arr,first,fin);
  23.                 print(arr);

  24.         }

  25.         public static void revArray(int[] arr) {
  26.                 int temp = 0;
  27.                 for (int i = 0;i < arr.length / 2 ;i++ ) {
  28.                         temp = arr[i];
  29.                         arr[i] = arr[arr.length - 1 -i];
  30.                         arr[arr.length - 1 - i] = temp;
  31.                 }
  32.         }

  33.         public static void print(int[] arr) {
  34.                 for (int i = 0;i < arr.length ;i++ ) {
  35.                         System.out.print(arr[i] +" ");
  36.                 }
  37.                 System.out.println();
  38.         }

  39.         public static void JiaoHuan(int[] arr) {
  40.                 int temp = 0;
  41.                 for (int i = 1;i <= (arr.length - 1)/2 ;i++ ) {
  42.                                 temp = arr[2*i + 1];
  43.                                 arr[2*i + 1] = arr[2*i - 1];
  44.                                 arr[2*i - 1] = temp;
  45.                 }
  46.         }

  47.         public static int getFirstMark(int[] arr) {
  48.                 int mark = 0;
  49.                 for (int i = 0;i < arr.length ;i++ ) {
  50.                         if (arr[i] % 2 == 1) {
  51.                                 return mark = i;
  52.                         }
  53.                 }
  54.                 return -1;
  55.         }

  56.         public static int getFinalMark(int[] arr) {
  57.                 int fin = 0;
  58.                 for (int i = arr.length - 1;i >=0 ;i-- ) {
  59.                         if (arr[i] % 2 == 1) {
  60.                                 return fin = i;
  61.                         }
  62.                 }
  63.                 return -1;
  64.         }

  65.         public static void JiaoHuanMark(int[] arr,int first,int fin) {
  66.                 int temp = 0;
  67.                 temp = arr[fin];
  68.                 arr[fin] = arr[first];
  69.                 arr[first] = temp;
  70.         }

  71. }
复制代码
回复 使用道具 举报
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                int[] arr = new int[6];
                int t = 0;
                while (t <= 5) {
                        System.out.println("请输入一个整数");
                        int a = Integer.parseInt(br.readLine());
                        arr[t++] = a;

                }
                br.close();

                int max = arr.length - 1;
                int min = 0;
                while (max > min) {
                        arr[max] = arr[min] ^ arr[max] ^ (arr[min] = arr[max]);
                        max--;
                        min++;
                }

                arr[3] = arr[5] ^ arr[3] ^ (arr[5] = arr[3]);
                for (int i : arr) {
                        System.out.print(i + " ");
                }

        }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马