猿问

使用用户输入创建 2 维数组并查找特定列的总和

请协助我的代码。数组中必须有 3 行和 4 列。用户必须能够为前 2 列输入双精度值。然后我应该能够计算数组中每一列的总和。



public class Main {


    public static void main(String[] args) 

    {

      // Implement scanner

      Scanner input = new Scanner(System.in);


      // Create loop for accepting matrix input

      // Determine row size

      System.out.println("Please enter the number 3 for the number of rows in the array:");

      int row = input.nextInt();

      //Rule for row not being 3

      while (row != 3)

      {

      System.out.println("Sorry, there must be 3 rows.");

      row = input.nextInt();

      }


      // Determine column size

      System.out.println("Please enter the number 4 for the number of columns in the array:");

      int column = input.nextInt();

      //Rule for column not being 4

      while (column != 4)

      {

      System.out.println("Sorry, there must be 4 columns.");

      column = input.nextInt();

      }


      // Declare array with row and columns the user gave

      int[][] userArray = new int[row][column];

      //Informing user how data is inputted and saved

      System.out.print("Note that the following inputs saves the numbers from left to right. So after entering 4 digits it moves onto the next row.");

      System.out.println("\n");

      for(int i=0;i < row ; i++)

      {

        for(int j=0; j< column; j++)

        { 

        System.out.print("Please enter a value for the array:["+i+"]["+j+"]");

        int val = input.nextInt();

        userArray[i][j] = val;

        }

      }

      printMatrix(userArray, row, column);

    }


    public static void printMatrix(int[][] array, int row, int column)

    {

      for (int i = 0; i < row; i++)

      {

        for (int j = 0; j < column; j++)

        {

          System.out.print(array[i][j] + " ");

        }

          System.out.println();

      }

    }

}

根据用户输入,打印输出应该是:

1.9 2.3 5 1

5.0 7.3 6 8

2.4 3.1 3 2

第 1 列的总和为:9.3

第 2 列的总和为:12.7

第 3 列的总和为:14

第 4 列的总和为:11


慕田峪9158850
浏览 82回答 2
2回答

莫回无

您现在需要按列添加数组值。它可以很简单:private void printSumForColumn(int[][] array, int col){&nbsp; int sum = 0;&nbsp; for (int i = 0; i < row; i++)&nbsp; {&nbsp; &nbsp; sum += array[i][col];&nbsp; }&nbsp; System.out.println("The sum of column " + col + " is " + sum);}

慕神8447489

首先,你不能使用 int 数组来存储浮点数。所以printMatrix方法签名应该改为double[][].这是一种计算列总和的方法public static void calColSum(double[][] matrix){&nbsp; &nbsp; // number of columns&nbsp; &nbsp; int col = matrix[0].length;&nbsp; &nbsp; // array to hold column sum&nbsp; &nbsp; double[] colSums = new double[col];&nbsp; &nbsp; for (double[] row : matrix) {&nbsp; &nbsp; &nbsp; &nbsp; for (int y = 0; y < col; y++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; colSums[y] += row[y];&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; for(int x = 0; x< colSums.length; x++){&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("The sum of column " + x +" is: " + colSums[x]);&nbsp; &nbsp; }}
随时随地看视频慕课网APP

相关分类

Java
我要回答