【发布时间】:2016-08-19 23:43:19
【问题描述】:
public static void main(String[] args) {
int rows, cols, j, i;
Scanner sc = new Scanner(System.in);
System.out.println("enter no of rows and columns respectively");
rows = sc.nextInt();
cols = sc.nextInt();
int[][] matrix = new int[rows+1][cols+1];
System.out.println("enter elements");
for(i = 0; i < rows; i++)
{
for(j = 0; j < cols; j++)
{
matrix[i][j] = sc.nextInt();
}
}
System.out.println("after sum");
int grandtotal = 0;
for(i = 0; i < rows; i++)
{
int rowsum = 0;
int colsum = 0;
for(j = 0; j < cols; j++)
{
rowsum += matrix[i][j];
colsum += matrix[j][i];
}
matrix[i][j] = rowsum;
grandtotal += rowsum;
matrix[j][i] = colsum;
}
j = cols;
matrix[i][j] = grandtotal;
上面的代码工作正常,但我的问题是:使用这个逻辑,如果行数和列数不一样,如何找到矩阵的grandtotal?并告诉我我当前的代码是否有任何缺陷。
【问题讨论】:
-
遍历所有单元格并将它们求和的问题在哪里?如果每行/列的列/行数不同,则使用
matrix[i].length进行内部循环。或者是在最后一行中找到最后一个单元格的问题?如果是这样,请尝试row[] = matrix[matrix.length-1];row[row.length-1]=grandtotal;。 -
@Pratik Thacker 作为一名计算机工程师,您应该始终考虑重用现有解决方案的解决方案。就像在这种情况下一样。
-
@Pratik Thacker 不仅代码变得更小,而且可以处理与行数和列数相关的任何输入。
标签: java arrays matrix multidimensional-array