Java 如何从二维数组的列和中查找数组的最大值
第一个查找行的最大值的数组工作正常,但出于某种原因,列和数组在列和数组的元素之外列出了其他内容Java 如何从二维数组的列和中查找数组的最大值,java,arrays,Java,Arrays,第一个查找行的最大值的数组工作正常,但出于某种原因,列和数组在列和数组的元素之外列出了其他内容 import java.util.*; public class Quiz { public static void main(String[] args) { Scanner input = new Scanner(System.in); Scanner input2 = new Scanner(System.in); Syst
import java.util.*;
public class Quiz
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
Scanner input2 = new Scanner(System.in);
System.out.println("Please eneter 20 numbers");
int userinput[][] = new int[4][5];
String StringInput;
for(int column = 0; column < 4; column++)
{
for(int row = 0; row < 5; row++)
{
userinput[column][row] = input.nextInt();
}
}
for(int column = 0; column < 4; column++)
{
for(int row = 0; row < 5; row++)
{
System.out.print(userinput[column][row] + " ");
}
System.out.println();
}
int[] sumOfRows = new int[userinput.length];
int sumR = 0;
int largetstrow = sumOfRows[0];
for(int row = 0; row < userinput.length; row++)
{
for(int col = 0; col < userinput[0].length; col++)
{
sumR += userinput[row][col];
}
sumOfRows[row] = sumR;
sumR = 0;
if(sumOfRows[row] > largetstrow)
largetstrow = sumOfRows[row];
}
System.out.println("The sum of each rows are " + Arrays.toString(sumOfRows));
System.out.println(largetstrow);
int size = userinput[0].length;
int sumOfColumn[] = new int[size]; // used for columns addition
int largestColumn = sumOfColumn[0];
int highestSumC = 0;
int highestIndexC = 0;
for (int i = 0; i < userinput.length; i++)
{
for (int j = 0; j < userinput[i].length; j++)
{
sumOfColumn[j] += userinput[i][j];
if(sumOfColumn[i] > highestSumC)
{
highestSumC = sumOfColumn[i];
highestIndexC = i;
}
}
}
System.out.println("The sum of each columns are " + Arrays.toString(sumOfColumn));
System.out.println(highestSumC);
}
}
import java.util.*;
公开课测验
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
扫描仪输入2=新扫描仪(System.in);
System.out.println(“请输入20个数字”);
int userinput[][]=new int[4][5];
字符串输入;
for(int列=0;列<4;列++)
{
对于(int行=0;行<5;行++)
{
userinput[列][行]=input.nextInt();
}
}
for(int列=0;列<4;列++)
{
对于(int行=0;行<5;行++)
{
System.out.print(用户输入[列][行]+“”);
}
System.out.println();
}
int[]sumOfRows=newint[userinput.length];
int-sumR=0;
int-largetstrow=sumOfRows[0];
for(int row=0;rowlargetstrow)
largetstrow=sumOfRows[行];
}
System.out.println(“每行的总和是”+Arrays.toString(sumOfRows));
系统输出打印LN(largetstrow);
int size=userinput[0]。长度;
int-sumOfColumn[]=new int[size];//用于添加列
int largestColumn=sumOfColumn[0];
int最高值c=0;
int highestIndexC=0;
for(int i=0;i最高SUMC)
{
最高Sumc=柱的sumOfColumn[i];
highestIndexC=i;
}
}
}
System.out.println(“每列的总和是”+Arrays.toString(sumOfColumn));
系统输出打印LN(最高消费);
}
}
为什么要从j切换到i
如果您反转循环,将列循环作为外部循环,将行作为内部循环,那么这可能会更容易,这样您就可以按照与第一个循环相同的方式来执行,而不必使用中间数组来保持一个运行总数
此外,将i
和j
作为变量名,以支持行
和列
,帮助您了解发生了什么
// it's j
sumOfColumn[j] += userinput[i][j];
// it's i
if(sumOfColumn[i] > highestSumC)
{
highestSumC = sumOfColumn[i];
highestIndexC = i;
}