Java语言怎么将求二维数组每一列上的最大值?将结果作为数组输出出来
首先,需要定义一个与列数相等长度的数组,存储最终每一列的大小。
其次遍历每一列数据,找最大值,算法思路:
求某一列最大值
for(int i=0;i< colNum;i++){
int max=0;
for(int j=0;j<rowNum;j++){
if(a[i][j]>max max = a[i][j]
}
lastMax[j] = max;
}
新建一个数组,
for loop i 代表列的索引
设个tmp变量
for loop k 代表行的索引
if a[k][i]>tmp:赋值
else:继续
tmp插进数组里
打印数组
这个可以实现行的
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("该数组共有几行几列:");
int n=sc.nextInt(); //行
int m=sc.nextInt(); //列
int [][]a=new int[n][m];
int b[]=new int[n];
for (int i = 0; i < n; i++) {
b[i]=0;
for (int j = 0; j < m; j++) {
a[i][j]=sc.nextInt();
if(b[i]<a[i][j]) {
b[i]=a[i][j];
}
}
}
for (int i = 0; i < n; i++) {
System.out.println("第"+(i+1)+"行最大值:"+b[i]);
}
}
}
这个可以实现列:
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("该数组共有几行");
int n=sc.nextInt(); //行
int m=sc.nextInt(); //列
int [][]a=new int[n][m];
int [][]c=new int[n][m];
int b[]=new int[n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
a[i][j]=sc.nextInt();
c[j][i]=a[i][j];
}
}
for (int i = 0; i < m; i++) {
b[i]=0;
for (int j = 0; j < n; j++) {
if(b[i]<c[i][j]) {
b[i]=c[i][j];
}
}
}
for (int i = 0; i < n; i++) {
System.out.println("第"+(i+1)+"列最大值:"+b[i]);
}
}
}