Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将二维数组乘以因子_Java_Arrays_Multidimensional Array - Fatal编程技术网

Java 如何将二维数组乘以因子

Java 如何将二维数组乘以因子,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我有二维数组 private static int [][] n = {{1, 2, 3, 4}, {5, 6, 7, 8}}; 我有 int m = 3; 如何将二维数组中的每个元素乘以3? 因此,输出将如下所示: {{3, 6, 9, 12},{15, 18, 21, 24}} 还有,如果我有一个矩阵 {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}, {16, 17, 18, 19, 20}, {21, 22

我有二维数组

private static int [][] n = {{1, 2, 3, 4}, {5, 6, 7, 8}}; 
我有

int m = 3; 
如何将二维数组中的每个元素乘以3?
因此,输出将如下所示:

{{3, 6, 9, 12},{15, 18, 21, 24}}
还有,如果我有一个矩阵

{{1, 2, 3, 4, 5}, 
{6, 7, 8, 9, 10}, 
{11, 12, 13, 14, 15}, 
{16, 17, 18, 19, 20}, 
{21, 22, 23, 24, 25}}, 
如何打印对角线元素

{1,7,13,19,25} and {5,9,12,17,20}
我想知道算法,因为我用的是乘维数组

private static int[] n = {1, 2, 3, 4, 5, 6, 7};

private static int[] multiply(int[] n, int m) {

    int array[] = new int[n.length];
    for (int i = 0; i < n.length; i++) {
        array[i] = n[i] * m;
    }
    return array;

}
private static int[]n={1,2,3,4,5,6,7};
私有静态整数[]乘法(整数[]n,整数m){
int数组[]=新的int[n.length];
for(int i=0;i
为此需要2个循环

int [][] n = {{1, 2, 3, 4}, {5, 6, 7, 8}};
for(int i=0;i<2;i++)
    for(int j=0;j<4;j++)
        n[i][j]*=3;
int[]n={{1,2,3,4},{5,6,7,8};

对于(int i=0;i只需迭代两个维度:

private static int[][] multiply(int[][] n, int m) {
    int array[][] = new int[n.length][];
    for (int i = 0; i < n.length; i++) {
        array[i] = new int[n[i].length];
        for (int j = 0; j < n[i].length; j++) {
            array[i][j] = n[i][j] * m;
        }
    }
    return array;
}
private static int[][]乘法(int[][]n,int m){
int数组[][]=新的int[n.length][];
for(int i=0;i
由于其他答案没有向您展示如何打印对角线元素,这里是:

for (int i = 0; i < n.length; i++)
    System.out.println(n[i][i]);
for(int i=0;i

因为对角线元素具有相等的第一和第二索引:
[i][i]

对于第一个任务,您可以使用一个简单的循环:

int m = 3;
for(int i = 0; i < n.length; i++){
    for(int j = 0; j < n[i].length; j++){
        n[i][j] *= m;
    }
}
所以为了得到对角线,你只需要做一个循环:

int[] d1 = new int[array.length];

int[] d2 = new int[array.length];

for(int i = 0; i < array.length; i++){
    d1[i] = array[i][i];
    d2[i] = array[array.length-1-i][i];
}
int[]d1=新的int[array.length];
int[]d2=新的int[array.length];
for(int i=0;i

您只需确保行和列的长度相同,否则它可能会抛出一个
ArrayIndexOutOfBoundsException

反向对角线元素:System.out.println(n[i][n.length-1-i]);它会返回一个错误(find int[],required int[])@MichaelKors是的,我搞错了变量定义,这是罪过。编辑并修复了。
int[] d1 = new int[array.length];

int[] d2 = new int[array.length];

for(int i = 0; i < array.length; i++){
    d1[i] = array[i][i];
    d2[i] = array[array.length-1-i][i];
}