二维数组的查找 java_查找二维数组java的总和
我正在一個項目中,我必須讀取文件并將內容輸入2D數組。然后,我必須對每一行,每一列和矩陣的周長求和。到目前為止,除外圍功能外,我一切正常。我正在嘗試為兩個外部列的頂行,底行和中間創建單獨的for循環。
矩陣文件如下所示:
1 2 3 4
2 4 6 8
2 4 6 8
3 2 3 4
因此,周長總計應為42。現在,我可以成功地將第一行和最后一行添加為等于22。但是,當我將列添加到總數中時,我得到32。
這是代碼:
import java.util.*; // Scanner class
import java.io.*; // File class
public class Lab10
{
static public void main( String [ ] args ) throws Exception
{
if ( args.length != 1 )
{
System.out.println("Error -- usage is: java Lab10 matdataN.txt");
System.exit( 0 );
}
//Requirement #1: first int value: # of rows, second int value: # of cols
File newFile = new File(args[0]);
Scanner in = new Scanner(newFile);
int numRows = in.nextInt();
int numCols = in.nextInt();
//Requirement #2: declare two-d array of ints
int[][] matrix;
matrix = new int[numRows][numCols];
//Requirement #3 & 4: read file one line at a time (nested for loops
//and nextInt()) and print
for (int i = 0; i < numRows; i++)
{
for (int j = 0; j < numCols; j++)
{
matrix[i][j] = in.nextInt();
System.out.print(matrix[i][j]+ " ");
}
System.out.println();
}
//Requirement #5: traverse each row and sum the values and display the sums
int rowTotal = 0;
for (int i = 0; i < numRows; i++)
{
rowTotal = 0;
for (int j = 0; j < numCols; j++)
{
rowTotal += matrix[i][j];
}
System.out.println("Sum for row = " + rowTotal);
}
//Requirement #6: traverse each column and sum the values and display the sums
int colTotal = 0;
for (int i = 0; i < numRows; i++)
{
colTotal = 0;
for (int j = 0; j < numCols; j++)
{
colTotal += matrix[j][i];
}
System.out.println("Sum for col = " + colTotal);
}
//Requirement #7: traverse the perimeter and sum the values and display the sum
//sum bottom row matrix
int perTotal = 0;
for (int i = (numRows-1); i < numRows; i++)
{
perTotal = 0;
for (int j = 0; j < numCols; j++)
{
perTotal += matrix[i][j];
}
}
//sum + top row matrix
for (int i = 0; i < numRows - (numRows-1); i++)
{
for (int j = 0; j < numCols; j++)
{
perTotal += matrix[i][j];
}
System.out.println("Sum of perimeter = " + perTotal);
}
// sum + first col middle
for (int i = 1; i < (numRows-1); i++)
{
for (int j = 0; j < numCols - (numCols-1); j++)
{
perTotal += matrix[j][i];
}
System.out.println("Sum = " + perTotal);
}
// sum + last col middle
for (int i = 1; i < (numRows-1); i++)
{
for (int j = (numCols-1); j < numCols; j++)
{
perTotal += matrix[j][i];
}
System.out.println(perTotal);
}
}
如果有人可以幫助我將第一列和最后一列的總和設為2 + 2和8 + 8,我將非常感激?;蛘?#xff0c;如果您有一種更好的方法來尋找周長。提前致謝!
總結
以上是生活随笔為你收集整理的二维数组的查找 java_查找二维数组java的总和的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [置顶] 动软软代码生成器
- 下一篇: 2021年还能用的13款完全免费的Off