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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. /*

  2. 3.分析以下需求,并用代码实现:(扩展)
  3. (1)键盘录入6个int类型的数据存数数组arr中
  4. (2)将arr数组中的内容反转
  5. (3)将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
  6. (4)最后将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
  7. (5)打印最终的数组(实现了1-4步之后的数组)
  8. (6)如:用户输入的6个int数字为[1,2,3,4,5,6],最后输出的结果为[6, 5, 4, 1, 2, 3]
  9. */
  10. import java.util.Scanner;
  11. class Test4 {
  12.         public static void main(String[] args) {
  13.                 Scanner sc = new Scanner(System.in);        //创建键盘录入对象
  14.                 int[] arr = new int[6];        //2 5 8 9 7 1
  15.                 int i = 0;
  16.                 while (i < 6) {
  17.                         System.out.println("请录入数组索引为"+i+"的元素");
  18.                         arr[i] = sc.nextInt();
  19.                         ++i;
  20.                 }
  21.                 //print(arr);        打印键盘录入的数组
  22.                 revArray(arr);
  23.                 //print(arr);                打印反转后的数组
  24.                 JiaoHuan(arr);
  25.                 //print(arr);                //打印1和3换, 3和5换,以此类推后的数组

  26.                 int first = getFirstMark(arr);
  27.                 //System.out.println(first);        输出数组中第一个出现的奇数
  28.                 int fin = getFinalMark(arr);
  29.                 //System.out.println(fin);        输出数组中最后出现的奇数
  30.                
  31.                 JiaoHuanMark(arr,first,fin);
  32.                 print(arr);

  33.         }

  34.         public static void revArray(int[] arr) {
  35.                 int temp = 0;
  36.                 for (int i = 0;i < arr.length / 2 ;i++ ) {
  37.                         temp = arr[i];
  38.                         arr[i] = arr[arr.length - 1 -i];
  39.                         arr[arr.length - 1 - i] = temp;
  40.                 }
  41.         }

  42.         public static void print(int[] arr) {
  43.                 for (int i = 0;i < arr.length ;i++ ) {
  44.                         System.out.print(arr[i] +" ");
  45.                 }
  46.                 System.out.println();
  47.         }

  48.         public static void JiaoHuan(int[] arr) {
  49.                 int temp = 0;
  50.                 for (int i = 1;i <= (arr.length - 1)/2 ;i++ ) {
  51.                                 temp = arr[2*i + 1];
  52.                                 arr[2*i + 1] = arr[2*i - 1];
  53.                                 arr[2*i - 1] = temp;
  54.                 }
  55.         }

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

  65.         public static int getFinalMark(int[] arr) {
  66.                 int fin = 0;
  67.                 for (int i = arr.length - 1;i >=0 ;i-- ) {
  68.                         if (arr[i] % 2 == 1) {
  69.                                 return fin = i;
  70.                         }
  71.                 }
  72.                 return -1;
  73.         }

  74.         public static void JiaoHuanMark(int[] arr,int first,int fin) {
  75.                 int temp = 0;
  76.                 temp = arr[fin];
  77.                 arr[fin] = arr[first];
  78.                 arr[first] = temp;
  79.         }

  80. }
复制代码

2 个回复

倒序浏览
厉害了word哥
回复 使用道具 举报

厉害了word哥{:3_51:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马