双阵列有问题

时间:2014-09-13 20:38:21

标签: java arrays multidimensional-array

我的程序有点问题。基本上,我想使用双数组将所有偶数元素设置为0,将所有奇数元素设置为1.我的输出应该是:

001 001 11

相反,我的输出是:

000 111 000

有关如何解决此问题的任何建议吗?

public class SetOf0and1 {

    public static void main(String[]args)
    {

        int [][] numbers1 = {{4,2,5}, {2,4,1}, {1,3}};

        System.out.println("Before setting elements between 0 and 1: ");
        displayArray(numbers1);

        setEvenRowsTo0OddRowsTo1 (numbers1);
        System.out.println("After setting the elements between 0 and 1");
        displayArray(numbers1);

    }

    public static void setEvenRowsTo0OddRowsTo1(int [][]array)
    {
    for(int i=0; i<array.length;i++)
    {
        for(int j=0; j<array[i].length;j++)
        {
            if(i%2 == 0)
            array[i][j]=0;
            else
                array[i][j]=1;

    }
    }
}
    public static void displayArray(int [][]array)
    {
        for(int i=0;i<array.length;i++)
        {
            for( int j=0; j<array[i].length;j++)            {
                System.out.print(array[i][j] + " " );
            }
            System.out.println();

    }

    }

}

2 个答案:

答案 0 :(得分:4)

你的测试错了:

if(i%2 == 0)

应该是

if(array[i][j] % 2 == 0)

答案 1 :(得分:2)

您正在检查索引i是奇数还是偶数而不是元素。这一行:

if(i%2 == 0)

应该是:

if(array[i][j]%2 == 0)