Java 如何在新数组b中存储sum的值 公共类HW9P1 { 公共静态void main(字符串[]args) { /*int[]a1={{4,-2,10}, { 19, 3, -5 } }; int[]b1=柱状图(a1)*/ int[]a2={{7,-10}, { 4, 13 }, { 1, 0 } }; int[]b2=columnsum(a2); int i,j; 对于(i=0;i

Java 如何在新数组b中存储sum的值 公共类HW9P1 { 公共静态void main(字符串[]args) { /*int[]a1={{4,-2,10}, { 19, 3, -5 } }; int[]b1=柱状图(a1)*/ int[]a2={{7,-10}, { 4, 13 }, { 1, 0 } }; int[]b2=columnsum(a2); int i,j; 对于(i=0;i,java,Java,您没有将sum存储回数组b。您实际上不需要sum,只需将值直接添加到数组中即可。例如 public class HW9P1 { public static void main(String[] args) { /*int[][] a1 = { { 4, -2, 10 }, { 19, 3, -5 } }; int[] b1 = coloumnsum(a1);*/ int[][] a2 = { { 7,

您没有将
sum
存储回数组
b
。您实际上不需要
sum
,只需将值直接添加到数组中即可。例如

public class HW9P1
{
   public static void main(String[] args)
   {
      /*int[][] a1 = { { 4, -2, 10 }, 
                     { 19, 3, -5 } };
      int[] b1 = coloumnsum(a1);*/

      int[][] a2 = { { 7, -10 }, 
                     { 4, 13 }, 
                     { 1, 0 } };
      int[] b2 = coloumnsum(a2);

      int i,j;
      for (i=0; i<b2.length; i++)
      {

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


      }

  }
   public static int[] coloumnsum (int[][] a)
   {
      int[] b = new int[a[0].length];
      int i,j, sum= 7;

         for (j=0; j<a[0].length; j++)
         {
            for (i=0; i<a.length; i++)
            {
               sum = sum + a[i][j];


            }
         }
         return b;

   }
}
  • 我不知道如果你想要的只是 对二维数组的列求和
  • 您没有为累加器数组
    b
    分配任何内容
  • 下面说明了对列求和的正确方法:

    12 3
    
    公共静态int[]columnsum(int[]a)
    {
    int[]b=新的int[a[0]。长度];
    对于(int i=0;i
    对于我提供的代码,答案应该是{12,3}。我想我还应该将sum的值存储在新数组b中,但我不知道怎么做。对于sum,我硬编码了a[0][0]的第一个值,以检查代码是否运行。对于行,我使用i,对于列,我使用j(第一个)我对sum很满意。我想知道如何将sum存储到数组中。@Asrar
    b[j]=sum;
    -当然,在开始添加它之前(在每个列中),您需要设置
    sum=0
    最后一件事我如何使用一个循环打印b1和b2。i int[]]a1={{4,-2,10},{19,3,-5};int[]b1=columnsum(a1);int[]a2={{7,-10},{4,13},{1,0}}int[]b2=columnsum(a2);int i,j;for(i=0;iyou会得到一个异常。但是,随着所做的更改,情况应该不再如此。请使用
    int[]a2={1},{2,3,4,5};
    -问题将是
    int[]b=新整数[a[0]。长度];
    @ElliottFrisch我的复制/粘贴错误问题。感谢您指出。这是行数。没有一种干净的方法可以获取锯齿数组中的列数。@ElliottFrisch这是一个问题,或者有发生异常的风险……除非OP可以保证2D数组将是真正的多维数组,否则这是更安全的方法。
    12 3
    
    public static int[] coloumnsum (int[][] a)
    {
           int[] b = new int[a[0].length];
           for (int i = 0; i < a[0].length; i++){
               for (int j = 0; j < a.length; j++)
                   b[i] += a[j][i];                   
           }        
           return b;  
    }