Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建幻方函数并写入文件_Java_Algorithm - Fatal编程技术网

Java 创建幻方函数并写入文件

Java 创建幻方函数并写入文件,java,algorithm,Java,Algorithm,我有一个构造函数来创建MagicSqaure private int[][]矩阵; 私有布尔平方; 公共MagicSquare(字符串文件名,int n)引发IOException { 如果(n%2!=1) { 抛出新的RuntimeException(“维度必须是奇数”); } 其他的 { int行=n-1; int col=n/2; 这个矩阵[行][col]=1; 对于(int i=2;i我不太明白如何将数组写入文件,但是如果我想遍历数组的一行又一行,查看所有列,我可以这样做: outFil

我有一个构造函数来创建MagicSqaure

private int[][]矩阵;
私有布尔平方;
公共MagicSquare(字符串文件名,int n)引发IOException
{
如果(n%2!=1)
{
抛出新的RuntimeException(“维度必须是奇数”);
}
其他的
{
int行=n-1;
int col=n/2;
这个矩阵[行][col]=1;

对于(int i=2;i我不太明白如何将数组写入文件,但是如果我想遍历数组的一行又一行,查看所有列,我可以这样做:

outFile.println(dimension)

for (int i = 0; i < totalRows; i++) {
  for (int j = 0, j< totalColumns, j++) {
     int value = this.matrix[i][j];
        boolean newLine = ???
        if (newLine) {
           outFile.println(value) //For printing on a new line
        } else {
           outFile.print(value)   //For printing on the same line
        }
  }
}
outFile.println(维度)
对于(int i=0;i

你需要用换行符来决定什么时候移到下一行或者什么时候在同一行上写,我不太清楚你什么时候写一行,但是你可以看到这个想法。

哪一行是
MagicSquare.java:53
?那一类的第53行?那一行什么是空的?我不知道你在哪里分配
matrix
。比如:
matrix=新整数[n][n]
@johnnymop这就是nullPointerException的问题,我忘了实例化matrix@Arvind在一般意义上是的,但问题实际上是两部分,因此不确定是否应将其标记为重复结束。因此,如果用户给出正方形的长度为5×5,则文档中的第一行必须是5文档的5行每行需要5个数字才能构成5行5列的幻方图totalRows和totalColumns是5行我还没有看到你的编辑,这个布尔新行的功能是什么尽管你需要自己决定何时移动到新行,我自己也不知道,所以用你的条件替换例如,当j==totalColumns-1,然后换行符=trueyup时,我发现它非常有用
Exception in thread "main" java.lang.NullPointerException
    at MagicSquare.<init>(MagicSquare.java:53)
    at MagicSquareDriver.main(MagicSquareDriver.java:6)
outFile.println(dimension)

for (int i = 0; i < totalRows; i++) {
  for (int j = 0, j< totalColumns, j++) {
     int value = this.matrix[i][j];
        boolean newLine = ???
        if (newLine) {
           outFile.println(value) //For printing on a new line
        } else {
           outFile.print(value)   //For printing on the same line
        }
  }
}