首页 > 解决方案 > 如何将浮点条目的二维数组克隆到另一个类型和大小相似的二维数组?

问题描述

我有一个问题,将浮点条目的二维数组克隆到另一个类似类型和大小的二维数组。以下是我的编码,任何人都可以帮我检查我错了哪一部分?谢谢。

public class Clone2Darray {
    public static int[][] clone(int[][] a) throws Exception {
        float b[][] = new int[a.length][a[0].length];

        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a[0].length; j++)
                b[i][j] = a[i][j];
        }
        return b;
    }

    public static void main(String args[]) {

        float a[][]= {{1.513,2.321,3.421},{4.213,5.432,6.123},{7.214,8.213,9.213}};


        try {
            float b[][] = Clone2Darray.clone(a);
            for (int i = 0; i < a.length; i++) {
                for (int j = 0; j < a[0].length; j++) {
                    System.out.print(b[i][j] + " ");
                }
                System.out.println();
            }
        } catch (Exception e) {
            System.out.println("Error!!!");
        }
    }
}

我的编码出现如下错误:

  C:\Users\User-Win7\.netbeans\7.1\var\cache\executor-snippets\run.xml:48: 
  Cancelled by user.
  BUILD FAILED (total time: 4 seconds)

我想要如下输出:

  1.513 2.321 3.421
  4.213 5.432 6.123
  7.214 8.213 9.213

  1.513 2.321 3.421
  4.213 5.432 6.123
  7.214 8.213 9.213

标签: javaarraysclonedimension

解决方案


1 - 将方法参数从 int 更改为 float。

2 - 将返回类型从 int 更改为 float。

3 - 在数组中分配浮点值时,在每个数字之后使用 f 来告诉编译器它是一个浮点数。

public static float[][] clone(float[][] a) throws Exception {
    float b[][] = new float[a.length][a[0].length];

    for (int i = 0; i < a.length; i++) {
        for (int j = 0; j < a[0].length; j++) {
            b[i][j] = a[i][j];
        }
    }
    return b;
}



    float[][] a = new float[][] { { 1.513f, 2.321f, 3.421f }, { 4.213f, 5.432f, 6.123f },
            { 7.214f, 8.213f, 9.213f } };

    try {
        float b[][] = clone(a);
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a[0].length; j++) {
                System.out.print(b[i][j] + " ");
            }
            System.out.println();
        }
    } catch (Exception e) {
        System.out.println("Error!!!");
    }

推荐阅读