由于小弟是新手 问题并不难但想得我头都大了
要求是输入9个整数,按照顺序组成一个矩阵,再验证是不是幻方。
前面的代码:
import java.io.*;
public class Matrix { public static void main(String args[]) {
int s[]=new int[9];  int k;
for(int i=0;i<9;i++){
System.out.print("请输入一个整数:");
try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String j=br.readLine();
s[i]=Integer.parseInt(j);
   }catch(IOException e){}
System.out.println("您所输入的矩阵是:");
for(int i=0;i<9;i++){
System.out.print(""+s[i]+" ");
if((i+1)%3==0)
System.out.println();
}
}
后面的验证我就写不出了 恳请帮忙 。一个幻方矩阵是 4 9 2 3 5 7 8 1 6 

解决方案 »

  1.   

    import java.util.*;
    public class Matrix { public static void main(String args[]) {

    Scanner s = new Scanner(System.in);
    System.out.println("Please input a matrix with 9 elements in a string");
    String input = s.next();
    if (input.length()!=9) {
    System.out.println("Must be 9 elements!");
    System.exit(0);
    }

    int[] matrix = new int[9];
    for (int i=0; i<9; i++)
    matrix[i] = Integer.valueOf(input.charAt(i)+"");
    System.out.println(input.substring(0, 3));
    System.out.println(input.substring(3, 6));
    System.out.println(input.substring(6, 9));
    System.out.println("Is a Magic Matrix? " + isMagicMatrix(matrix, 3, 3));

    }

    private static boolean isMagicMatrix(int[] m, int rows, int columns) { for (int i=0; i<rows; i++){
    int Sum = 0;
    for (int j=0; j<columns; j++)
    Sum += m[j+3*i];
    if (Sum != 15)
    return false;
    }
    for (int i=0; i<columns; i++){
    int Sum = 0;
    for (int j=0; j<rows; j++)
    Sum += m[j+3*i];
    if (Sum != 15)
    return false;
    }
    return true;
    }
    }