0

在 main 中,为第一维和第二维分配 2 个随机数(3 到 10 之间的整数)

我有这个,但 Math.random() 方法不起作用;不起作用

import java.lang.Math;


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

    double doubMatrix1[][] = (int) (Math.random()*(10-3+1)+3);
    double doubMatrix2[][];
    double doubMatrix3[][];


}
}
4

4 回答 4

0

您的代码中的问题是您正在尝试使用 int 初始化 double 矩阵

类型必须相等!

这是您修复的代码。

import java.lang.Math;

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

    int d1 = (int) (Math.random()*(10-3+1)+3);
    int d2 = (int) (Math.random()*(10-3+1)+3);

    double doubMatrix1[][] = new double[d1][d2];
    double doubMatrix2[][];
    double doubMatrix3[][];


}
}

希望这有帮助

于 2012-10-14T07:23:25.110 回答
0

Math.random()返回 0.0 到 1.0 之间的分数。因此,(int) (Math.random()*(10-3+1)+3)您只能获得一个介于 3 到 10 之间的随机数。但是您将其分配给double doubMatrix1[][]. 所以可能你以错误的方式调用构造函数。您应该r1, r2根据老师教的方法生成两个不同的随机数,然后调用构造函数double doubMatrix1[][] = double[r1][r2]

于 2012-10-14T07:33:10.387 回答
0

看看这个,这可能会有所帮助:

// DMA of 2D array in C++
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int x = 3, y = 3;

int **ptr = new int *[x];

for(int i = 0; i<y; i++)
{
    ptr[i] = new int[y];
}
srand(time(0));

for(int j = 0; j<x; j++)
{
    for(int k = 0; k<y; k++)
    {
        int a = rand()%5;
        ptr[j][k] = a;
        cout<<ptr[j][k]<<" ";
    }
    cout<<endl;
}
}

我们在这里使用了一个指针并像二维数组一样处理它,使用 % 作为限制

于 2013-09-30T17:28:20.377 回答
0

要在 Java 中创建多维数组,请使用new <type>[dim1][dim2],如以下代码所示:

Random rand = new Random();

int r1 = rand.nextInt(8) + 3;
int r2 = rand.nextInt(8) + 3;
double doubMatrix[][] = new double[r1][r2];
于 2012-10-14T07:06:35.740 回答