-4

如何在 Java 中将两个随机数初始化为一个数组?我试过这个,但它已经给了我很多错误。在这个程序中,我想将 2 个金额初始化为数组、账户余额和帐号。

public class Bank {

    public static void main (String args []){

        int [] account;
        account = new int [100];

        for(int c = 1; c < 100; c++){
            int account[c] = {Math.random() * 1000  , Math.random() * 100};
        }

    }
}
4

4 回答 4

4

您的数组是一维的,因此您不能将其中的一个元素初始化为两个值。此外,您不应该在循环中声明每个元素的类型。您正在寻找的是一个二维数组 - 代码如下:

public class Bank{
    public static void main (String args []){

        int [][] account;
        account = new int[100][];

        for(int c = 0; c < 100; c++){
            account[c] = new int[]{(int)(Math.random()*1000)  , (int)(Math.random()*100)};
        }

    }
}

还要注意循环应该从 0 开始,而不是 1(Java 数组是从 0 开始的)。最后,请注意(int)演员表 - 您需要这样做以避免可能的精度错误损失。

于 2013-06-25T12:59:36.623 回答
2

您的程序有一些改进:

  • Java中数组的第一个索引0不是1
  • 引入是因为它提供了从固定范围 ( .. )java.lang.Random中获取新随机值的更简洁的方法01000

    public class Bank {
        public static void main (String args[]) {
            final Random rnd = new Random();
            final int [][] account = new int [100][2];
    
            for(int c = 0; c < 100; c++){
                account[c] = new int[]{ rnd.nextInt(1000)  , rnd.nextInt(1000)};
            }
        }
    }
    
于 2013-06-25T12:59:19.893 回答
0

代替

int account[c] = new int............

你可能正在寻找

account[c] = new int............
于 2013-06-25T12:58:43.630 回答
0

首先account是一个重复的变量,其次你不需要初始化器。第三个问题是它account[0]不会被初始化。所以修正后的版本是这样的:

public static void main (String args []){

    int [] account;
    account = new int [100];

    for(int c = 0; c < 100; c++){
        account[c] = (int) (Math.random()*1000);
    }

}

或者如果你需要一个数组数组,你可以这样做:

int [][] account = new int [100][2];

for(int c = 0; c < 100; c++){
    account[c] = new int[]{ Math.random()*1000  , Math.random()*100};
}
于 2013-06-25T12:59:22.170 回答