Java中调用fillArray方法初始化3×4二维数组时出现“需要int[][]参数”错误的问题咨询
问题分析与解决方案
嘿,我一眼就揪出问题所在了——你的fillArray方法定义和调用不匹配,而且还有个隐藏的逻辑bug,咱们一步步来搞定:
1. 核心错误:方法参数不匹配
你定义的fillArray方法要求传入一个int[][]类型的参数:
public static int[][] fillArray(int[][] userInput) { ... }
但你在main方法里调用时却没传任何参数:
int[][] grid = fillArray();
这就导致编译器报错“需要int[][]类型参数”——它盼着你给方法传个数组,结果你啥都没给。而且更关键的是:这个参数完全多余!因为你在方法内部已经新建了一个3×4的数组int[][] grid = new int[3][4];,根本用不上传入的userInput。
2. 修正fillArray方法
直接把方法的参数删掉,改成无参方法就行:
public static int[][] fillArray() { Scanner input = new Scanner(System.in); int[][] grid = new int[3][4]; System.out.println("Enter a 3x4 grid of numbers please: "); for (int row = 0; row < grid.length; row++) { for (int column = 0; column < grid[row].length; column++) { grid[row][column] = input.nextInt(); } } return grid; }
这样int[][] grid = fillArray();就能正常调用了。
3. 顺便修复sumColumn方法的逻辑bug
你的sumColumn方法逻辑完全跑偏了:每次循环列的时候都把columnIndex重置为0,最后返回的只会是最后一列的和,而且完全没用到传入的columnIndex参数。正确的逻辑应该是根据传入的列索引,遍历所有行累加该列的数值:
public static int sumColumn(int[][] m, int columnIndex) { int sum = 0; // 遍历所有行,累加对应列的数值 for (int row = 0; row < m.length; row++) { sum += m[row][columnIndex]; } return sum; }
完整修正后的代码
import java.util.Scanner; // 别忘了导入Scanner类! public class SumOfColumns { public static int sumColumn(int[][] m, int columnIndex) { int sum = 0; for (int row = 0; row < m.length; row++) { sum += m[row][columnIndex]; } return sum; } public static void main(String[] args) { int[][] grid = fillArray(); // 展示每一列的和 for (int col = 0; col < grid[0].length; col++) { System.out.println("Sum of column " + col + " is: " + sumColumn(grid, col)); } } public static int[][] fillArray() { Scanner input = new Scanner(System.in); int[][] grid = new int[3][4]; System.out.println("Enter a 3x4 grid of numbers please: "); for (int row = 0; row < grid.length; row++) { for (int column = 0; column < grid[row].length; column++) { grid[row][column] = input.nextInt(); } } input.close(); // 记得关闭Scanner return grid; } }
额外提醒:别忘了导入java.util.Scanner类,不然会报找不到Scanner的错误,我已经在代码里补上了。
内容的提问来源于stack exchange,提问作者Jeremy
相关产品推荐
相关产品推荐

