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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© caicc 中级黑马   /  2016-7-2 23:56  /  439 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

能正常编译,输入6个整数后就提示数组索引越界异常
  1. import java.util.Scanner;
  2. class Array3 {
  3.         public static void main(String[] args) {
  4.                 Scanner sc = new Scanner(System.in);               
  5.                 int[] arr = new int[6];
  6.                 for (int i = 0;i < 6 ;i ++ ){
  7.                         System.out.println("请输入6个整数:");
  8.                         arr[i] = sc.nextInt();
  9.                 }
  10.                 reverseArray(arr);
  11.                 change1(arr);
  12.                 change2(arr);
  13.                 print(arr);
  14.         }
  15.        
  16.         public static void reverseArray(int[] arr) {
  17.                 for (int i = 0;i < arr.length/2 ;i ++ ){
  18.                         int temp = 0;
  19.                         temp = arr[i];
  20.                         arr[i] = arr[arr.length - i - 1];
  21.                         arr[arr.length - i - 1] = temp;
  22.                 }
  23.         }
  24. //将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
  25. //也就是arr[]
  26.         public static void change1(int[] arr) {       
  27.                 for (int i = 0;i < arr.length ;i++ ){
  28.                         if (i % 2 == 1 && i < arr.length){
  29.                                 int temp = 0;
  30.                                 temp = arr[i];
  31.                                 arr[i] = arr[i + 2];
  32.                                 arr[i + 2] = temp;
  33.                         }
  34.                 }
  35.                
  36.         }
  37. //最后将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
  38.         public static void change2(int[] arr) {
  39.                 int temp = 0;
  40.                 if (arr.length % 2 == 0){
  41.                         temp = arr[1];
  42.                         arr[1] = arr[arr.length - 1];
  43.                         arr[arr.length - 1] = temp;
  44.                 }else{
  45.                         temp = arr[1];
  46.                         arr[1] = arr[arr.length - 2];
  47.                         arr[arr.length - 2] = temp;
  48.                 }
  49.         }

  50.         public static void print(int[] arr) {
  51.                 for (int i = 0; i < arr.length ;i++ ){
  52.                         System.out.print(arr[i] + "  ");
  53.                 }
  54.         }
  55. }
复制代码

1 个回复

倒序浏览
不知道,同求
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马