你好,我是java新手,我想编写一个程序,在其中打印2D表中列的最大元素。使用这段代码,我超出了界限 我正在更新图片以显示我实际想要打印的内容。
Scanner sc = new Scanner(System.in);
int col = sc.nextInt();
int row = sc.nextInt();
int[][] table = new int [col][row];
int[] t = new int [row];
for(int i=0; i<col; i++){
for(int j=0; j<row; j++){
table[i][j] = sc.nextInt();
}
}
int max= 0;
for(int i=0; i<col; i++){
int m = 0;
max = table[0][i];
for(int j=0; j<row; j++){
if(max<table[j][i]){
max = table[j][i];
t[m] = table[j][i];
m++;
}
}
}
System.out.println(Arrays.toString(t));
最佳答案
您需要在代码中解决两件事:
- 从内部循环中删除
t[m] = table[j][i];
并将max
分配给t[i]
在内循环之外。 - 删除
m
,因为它没有用。
完整代码如下:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int [][]table=new int[][]{
{10,-6,-5,1},
{0,-1,-7,-3},
{9,5,-4,7},
{8,3,-3,7},
{4,2,-6,9}
};
int max;
int[] t=new int[table[0].length];
for(int i=0; i<table[0].length; i++){
max = table[0][i];
for(int j=0; j<table.length; j++){
if(max<table[j][i]){
max = table[j][i];
}
}
t[i]=max;
}
System.out.println(Arrays.toString(t));
}
}
输出:
[10, 5, -3, 9]
关于java - 找到二维表列中的最大元素,从中创建新表并打印它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59809885/