0

このコードは ROW ごとの合計を出力します... COLUMN ごとの合計を出力するように変換する方法は? ありがとう、、

public class NewClass{
  public static void main( String[] arg )
  {
int[][] data = 
    { { 1, 2},
      { 2, 2},
      { 1, 2, 4, 5},
      { 2, 2, 4,},
      { 1, 1, 4, 5 },
      { 2, 1, }};



     for ( int row=0; row < data.length; row++)
        {
           int sum = 0;
          for ( int col=0; col < data[row].length; col++)
          {
           sum = sum + data[row][col];
          }
            System.out.print("Sum of Row " + row+" is :  ");
          System.out.println( sum );
        }         
      }
    }     
4

1 に答える 1

1

各行の列数が異なることを考慮に入れる必要があります。

まず、データセット内の列の最大数を見つけてから、列を合計します。

public class NewClass {
    public static void main(String[] arg) {
        int[][] data = { { 1, 2 }, { 2, 2 }, { 1, 2, 4, 5 }, { 2, 2, 4, },
                { 1, 1, 4, 5 }, { 2, 1, } };

        int maxColLength = 0;
        for (int row = 0; row < data.length; row++) {
            int colLength = data[row].length;
            if (colLength > maxColLength) {
                maxColLength = colLength;
            }
        }

        for (int col = 0; col < maxColLength; col++) {
            int sum = 0;
            for (int row = 0; row < data.length; row++) {
                if (col < data[row].length) {
                    sum = sum + data[row][col];
                }
            }
            System.out.print("Sum of Column " + col + " is :  ");
            System.out.println(sum);
        }
    }
}
于 2012-11-15T16:41:46.850 に答える