JAVA矩阵程序仅打印0,不接受输入
我的程序运行没有错误。 但是,不知何故跳过了readInput方法。 这导致只打印0 另外,我如何修改displayResult方法,以使我的输出在显示中更像“矩阵” 下面是我的源代码JAVA矩阵程序仅打印0,不接受输入,java,arrays,matrix,Java,Arrays,Matrix,我的程序运行没有错误。 但是,不知何故跳过了readInput方法。 这导致只打印0 另外,我如何修改displayResult方法,以使我的输出在显示中更像“矩阵” 下面是我的源代码 import java.util.Scanner; public class Matrices { int i, j, k, n = 3; int[][] matA = new int[n][n]; int[][] matB = new int[n][n]; int[][] mat
import java.util.Scanner;
public class Matrices {
int i, j, k, n = 3;
int[][] matA = new int[n][n];
int[][] matB = new int[n][n];
int[][] matSum = new int[n][n];
int[][] matProd = new int[n][n];
public void readInput() {
Scanner scan = new Scanner(System.in);
for (i = 0; n < 3; i++) {
for (j = 0; j < n; j++) {
System.out.println("matA[" + i + "][" + j + "]");
matA[i][j] = scan.nextInt();
System.out.println("matA[" + i + "][" + j + "]");
matA[i][j] = scan.nextInt();
}
}
}
public void findSum() {
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
matSum[i][j] = matA[i][j] + matB[i][j];
}
}
}
public void findProduct() {
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
for (k = 0; k < n; k++) {
matProd[i][j] = matProd[i][j] + matA[i][j] * matB[i][j];
}
}
}
}
public void displayResult() {
// Printing the Sum Matrix
System.out.println("Sum Matrix is:");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
System.out.println(matSum[i][j] + " ");
}
}
// Printing the Product Matrix
System.out.println("Product Matrix is:");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
System.out.println(matProd[i][j] + " ");
}
}
System.out.println();
}
public static void main(String[] args){
System.out.println("Matrix Calculator");
System.out.println("-------------------\n");
Matrices self = new Matrices();
self.readInput();
self.findSum();
self.findProduct();
self.displayResult();
}
}
import java.util.Scanner;
公共类矩阵{
int i,j,k,n=3;
int[]matA=新的int[n][n];
int[][]matB=新的int[n][n];
int[]matSum=新的int[n][n];
int[]matProd=新int[n][n];
public void readInput(){
扫描仪扫描=新扫描仪(System.in);
对于(i=0;n<3;i++){
对于(j=0;j
由于以下原因,您的读取输入法无法工作:
for (i = 0; n < 3; i++) {
(i=0;n<3;i++)的{
由于声明了n且init to 3,条件n<3返回false,因此矩阵从不填充,之后的所有内容都是基于零矩阵的jsut!请使用以下代码:
import java.util.Scanner;
public class Matrices {
int i, j, k, n = 3;
int[][] matA = new int[n][n];
int[][] matB = new int[n][n];
int[][] matSum = new int[n][n];
int[][] matProd = new int[n][n];
public void readInput() {
Scanner scan = new Scanner(System.in);
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
System.out.println("matA[" + i + "][" + j + "]");
matA[i][j] = scan.nextInt();
System.out.println("matB[" + i + "][" + j + "]");
matB[i][j] = scan.nextInt();
}
}
}
public void findSum() {
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
matSum[i][j] = matA[i][j] + matB[i][j];
}
}
}
public void findProduct() {
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
for (k = 0; k < n; k++) {
matProd[i][j] = matProd[i][j] + matA[i][j] * matB[i][j];
}
}
}
}
public void displayResult() {
// Printing the Sum Matrix
System.out.println("Sum Matrix is:");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
System.out.println(matSum[i][j] + " ");
}
}
// Printing the Product Matrix
System.out.println("Product Matrix is:");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
System.out.println(matProd[i][j] + " ");
}
}
System.out.println();
}
public static void main(String[] args) {
System.out.println("Matrix Calculator");
System.out.println("-------------------\n");
Matrices self = new Matrices();
self.readInput();
self.findSum();
self.findProduct();
self.displayResult();
}
}
import java.util.Scanner;
公共类矩阵{
int i,j,k,n=3;
int[]matA=新的int[n][n];
int[][]matB=新的int[n][n];
int[]matSum=新的int[n][n];
int[]matProd=新int[n][n];
public void readInput(){
扫描仪扫描=新扫描仪(System.in);
对于(i=0;i
您在for循环中犯了一个错误
int i, j, k, n=3;
int[][]matA = new int [n][n];
int[][]matB = new int [n][n];
int[][]matSum = new int [n][n];
int[][]matProd = new int [n][n];
public void readInput(){
Scanner scan = new Scanner(System.in);
for(i = 0; n < 3; i++){
for(j = 0; j < n; j++){ ...
inti,j,k,n=3;
int[]matA=新的int[n][n];
int[][]matB=新的int[n][n];
int[]matSum=新的int[n][n];
int[]matProd=新int[n][n];
public void readInput(){
扫描仪扫描=新扫描仪(System.in);
对于(i=0;n<3;i++){
对于(j=0;j
在这里,nAlso他声明了
i,j,k
,但最终使用了同名的循环变量,因此外部i,j,k
永远不会被使用。第二个输入应该被纳入matB
,i,j
变量应该在读取输入时对照n进行检查。