Java Scanner对象一直需要输入
我有以下代码,其中矩阵是通过系统输入定义的:Java Scanner对象一直需要输入,java,Java,我有以下代码,其中矩阵是通过系统输入定义的: import java.io.*; import java.util.*; public class Test { public static void main(String[] args) { Scanner in = new Scanner(System.in); //define size of matrix int size = in.nextInt(); i
import java.io.*;
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
//define size of matrix
int size = in.nextInt();
int primeSum = 0;
int secSum = 0;
int[] matrix = new int[size*size];
//create matrix
for (int i=0; i<size*size;i++) {
matrix[i] = in.nextInt();
}
in.close();
//sum primary diagonal
for (int i=0; i < size*size;i += (size + 1)) {
primeSum = primeSum + matrix[i];
}
////sum secondary diagonal
// for (int i=(size - 1); i < size*size; i += (size - 2)) {
// secSum = secSum + matrix[i];
// }
System.out.println(Math.abs(secSum - primeSum));
}
}
import java.io.*;
导入java.util.*;
公开课考试{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
//定义矩阵的大小
int size=in.nextInt();
int primeSum=0;
int secSum=0;
int[]矩阵=新的int[size*size];
//创建矩阵
对于(int i=0;i您的这部分代码:
for (int i=0; i<size*size;i++) {
matrix[i] = in.nextInt();
}
for(int i=0;i您的这部分代码:
for (int i=0; i<size*size;i++) {
matrix[i] = in.nextInt();
}
for(int i=0;i您编写了一个潜在的无限循环。即,如果大小不大于2,则i
将倒计时或保持0
。您应该涵盖这些情况,那么您的代码就可以了
据我所见,您正在一维上模拟二维数组。这很难理解,也很容易搞乱。您最好使用二维数组和一些嵌套循环:
int[][] matrix = new int[size][size];
//create matrix
for (int i=0; i<size; i++) {
for (int j=0; j<size; j++) {
matrix[i][j] = in.nextInt();
}
}
// and so on...
int[][]矩阵=新的int[size][size];
//创建矩阵
对于(int i=0;i您编写了一个潜在的无限循环。也就是说,如果大小不大于2,则i
将倒计时或保持0
。您应该涵盖这些情况,那么您的代码就可以了
据我所见,您正在一维上模拟二维数组。这很难理解,也很容易搞乱。您最好使用二维数组和一些嵌套循环:
int[][] matrix = new int[size][size];
//create matrix
for (int i=0; i<size; i++) {
for (int j=0; j<size; j++) {
matrix[i][j] = in.nextInt();
}
}
// and so on...
int[][]矩阵=新的int[size][size];
//创建矩阵
对于(inti=0;我只是想象一下你的例子,你在一个无限循环中运行:矩阵大小=2。你认为i+=(大小-2)
将使i
增加?请注意,每一个大于2的尺寸都将再次工作。不,但如果尺寸大于等于3,则是,但条件是i@KevinEsche明白了-我想我现在看到了问题——想象一下你的例子,你在一个无限循环中运行:矩阵大小=2。你认为I+=(大小-2)
将使i
增加?请注意,每一个大于2的尺寸都将再次工作。不,但如果尺寸大于等于3,则是,但条件是i@KevinEsche明白了-我想我现在明白了