0

10 x 10 の 2 次元配列を設定しました。各スロットは、それぞれの位置に対して (x*y) です。列 3、5、および 7 のすべての数値を cTotal に加算し、行 2、4、および 6 のすべての数値を rTotal に加算しようとしています。私のコーディングは正しいように見えますが、それを機能させることができないようです。何か案は?

public static void arrayMath()
{
    int cTotal = 0;
    int rTotal = 0;
    //int tDiffValue = (rTotal - cTotal);

    int twodimarr[][] = new int[10][10];

    int row = 10; 
    int col = 10;
    int x = 0;
    int y = 0;

    for(x = 0; x < row; x++)
    {
        for(y = 0; y < col; y++)
        {
            twodimarr[x][y] = x*y;
        }
    }

    for(x = 0; x < row; x++)
        {
        for(y = 0; y < col; y++)
            {
            if( (x+y) < col )
            {
        //System.out.print( " " );
        }
    //System.out.print(" " + (twodimarr[x][y]));
    }
    //System.out.println();
    }

    for(x = 0; x < twodimarr.length; x++)     //Problems start down here.
      {
        for( y= 0; y<twodimarr.length; y++)
        {
            if(y == 2 || y == 4 || y == 6)
            {
            rTotal = ((rTotal + twodimarr[x][y]));
            }
        }
      }
      System.out.println("rTotal is " + rTotal + ".");

      for(x = 0; x < twodimarr.length; x++)
      {
          for(y = 0; y < twodimarr.length; y++)
          { 
             if(x == 3 || x == 5 || x == 7)
             {
             cTotal = ((cTotal + twodimarr[x][y]));
             }
          }
      }
      System.out.print("cTotal is " + cTotal + "."); 

}
4

2 に答える 2

1

x==3 は 3 列目ではなく、4 列目 (0,1,2,3) です。つまり、3*0、3*1 などの列であり、その場合は 675/540 の数字が正しいということです。

于 2013-04-01T13:53:50.453 に答える
0

配列インデックスは 0 から始まります。必要な行/列を取得するには、チェックしている数値から 1 を引く必要があります。行 2、4、6 については、y == 1、3、5 かどうかをチェックします。列 3、5、7 については、x == 2、4、6 かどうかをチェックします。

于 2013-04-01T13:56:51.510 に答える