无法在Java中打印2d阵列
问题描述:
我正在尝试输入2d数组并打印它。
我不想使用Java接口或任何其他图书馆,我在打印在控制台上有问题 的ArrayList集合.The输入工作良好无法在Java中打印2d阵列
import java.lang.*;
import java.util.*;
class Triangle{
public static int n;
public static void main(String args[]){
Scanner in = new Scanner(System.in);
int i, j, cases;
int[][] values = new int[100][100];
cases = in.nextInt();
while(cases-- > 0){
n = in.nextInt();
int temp;
for(i=0 ; i<n ; i++){
for(j=0 ; j<=i ; j++){
values[i][j] = in.nextInt();
}
}
}
large(values);
}
public static void large(int[][] arr){
for(int i = 0 ; i<n ; i++){
for(int j=i ; j<i ; j++){
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
答
你的问题从这里开始:
public static void large(int[][] arr){
for(int i = 0 ; i<n ; i++){
是什么让你认为最后ñ用户refle进入你的数组的边界是什么?
换句话说:您定义的数组大小为100 x 100;并且阵列本身知道它们的大小;所以你只要去
for(int i=0; i < arr.length; i++) {
for (int j=0; j < arr[i].length; j++) {
请注意:你也应该考虑重做你的“输入”方法。截至目前,该代码为高度混淆;循环风格很奇怪;正如所说:防止超出阵列限制......看起来与您放下的不同!
答
如果你想打印所有你需要从0开始的每个索引,在你的代码,你跟我开始你的第二个循环的数组,你忘了每个条目添加到总和
public static void large(int[][] arr){
for(int i = 0 ; i<n ; i++){
for(int j=0 ; j<i ; j++){
System.out.print(arr[i][j]);
sum+=arr[i][j];
}
System.out.println();
}
System.out.println(sum);
}
什么问题你有吗?我乍看之下唯一的问题是,当你走的时候,你永远不会计算出“总和”。 –
哦!我忘了删除总和。只是想输入和打印像三角形形式的二维数组 –