JAVA 数组在调用方法和循环的时候出现异常,求高人解答 本人是JAVA新手,在eclipse中尝试用Scanner从键盘输入由1、0组成的2维数组,来寻找数组中的最小码距问题时遇到抛出异常,不知如何解决,由于积分不多,暂时只能给出5点积分,希望能得到高手解答下,小弟不胜感激,下面附上代码: public class Maju { public void bijiao(int A[][]) { int i,j; int a=0; int b; int min=1000; for( i=0;i<A.length;i++) for(b=i+1;b<A.length;i++) { j=0; while(j<A[i].length) { if(A[i][j]!=A[b][j]) a+=1; j++; } min=min>a?a:min; } System.out.println("最小码距为"+min); } }
import java.util.Scanner; public class zuixiaomaju { public static void main(String[] args) { // TODO Auto-generated method stub int A[][]=new int[3][4]; Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();//行数a int b = scanner.nextInt();//列数b
[解决办法] import java.util.*; public class MinDisDemo { public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in); System.out.println("请输入行数:"); int a = scanner.nextInt();// 行数a System.out.println("请输入列数:"); int b = scanner.nextInt();// 列数b int[][] A = new int[a][b]; System.out.println("输入" + a + "行," + b + "列的数组的元素:"); for (int i = 0; i < a; i++) for (int j = 0; j < b; j++) { if(A[i][j] > 1 || A[i][j] < 0){ System.out.println("输入有误,请输入0或1"); j--; } A[i][j] = scanner.nextInt(); } MinDis m = new MinDis(); int i = m.compareDemo(A); System.out.println(i);
} }
class MinDis{//最小码距 public int compareDemo(int[][] a){ int[] count = new int[a.length]; for(int i = 0; i < a.length-1; i++){ for(int j = 0; j < a[i].length; j++) if(!com(a[i][j],a[i+1][j])) count[i] ++; } Arrays.sort(count); return count[a.length-1]; } public boolean com(Integer a,Integer b){ return a.equals(b); } }