如何为用户指定行列数的二维数组逐个输入元素?
解决方案
核心思路是用嵌套for循环遍历二维数组的每个索引位置——外层循环控制行号,内层循环控制列号,这样就能覆盖用户指定的所有行列组合,逐个提示输入值。
以Java为例(从你用input.nextInt()的写法判断是Java场景),假设你已经通过Scanner获取了行数rows和列数cols,代码实现如下:
import java.util.Scanner; public class TwoDArrayInput { public static void main(String[] args) { Scanner input = new Scanner(System.in); // 已实现的逻辑:获取用户指定的行数和列数 System.out.print("请输入二维数组的行数:"); int rows = input.nextInt(); System.out.print("请输入二维数组的列数:"); int cols = input.nextInt(); // 初始化对应大小的二维数组 int[][] array = new int[rows][cols]; // 嵌套循环遍历每个索引,逐个接收输入 for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { System.out.printf("请输入数组索引[%d][%d]的值:", i, j); array[i][j] = input.nextInt(); } } // 可选:打印输入后的数组,验证结果 System.out.println("你输入的二维数组内容:"); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { System.out.print(array[i][j] + " "); } System.out.println(); } input.close(); } }
关键逻辑说明:
- 外层循环的变量
i遍历所有行号,范围是0到rows-1(数组索引从0开始); - 内层循环的变量
j遍历当前行的所有列号,范围是0到cols-1; - 两层循环组合后,
i和j的每一组取值对应二维数组的一个唯一索引位置,确保不会遗漏或重复; - 通过
printf明确提示当前要输入的索引位置,让用户操作更清晰。
内容的提问来源于stack exchange,提问作者May
相关产品推荐
相关产品推荐

