为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕田峪9158850 2023-06-08 20:20:47
请协助我的代码。数组中必须有 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 15.0 7.3 6 82.4 3.1 3 2第 1 列的总和为:9.3第 2 列的总和为:12.7第 3 列的总和为:14第 4 列的总和为:11
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

您现在需要按列添加数组值。它可以很简单:


private void printSumForColumn(int[][] array, int col)

{

  int sum = 0;

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

  {

    sum += array[i][col];

  }

  System.out.println("The sum of column " + col + " is " + sum);

}


查看完整回答
反对 回复 2023-06-08
?
慕神8447489

TA贡献1780条经验 获得超1个赞

首先,你不能使用 int 数组来存储浮点数。所以printMatrix方法签名应该改为double[][].


这是一种计算列总和的方法


public static void calColSum(double[][] matrix){


    // number of columns

    int col = matrix[0].length;


    // array to hold column sum

    double[] colSums = new double[col];


    for (double[] row : matrix) {

        for (int y = 0; y < col; y++) {

            colSums[y] += row[y];

        }

    }


    for(int x = 0; x< colSums.length; x++){

        System.out.println("The sum of column " + x +" is: " + colSums[x]);

    }

}


查看完整回答
反对 回复 2023-06-08
  • 2 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信