Java 为什么我的二维阵列中的元素会重复? int[]速度={25,30,35,40,45}//每小时英里数 双[]度={25,30,35,40,45,50}//度 int rows=速度。长度; int列=度长度; 对于(int i=0;i

Java 为什么我的二维阵列中的元素会重复? int[]速度={25,30,35,40,45}//每小时英里数 双[]度={25,30,35,40,45,50}//度 int rows=速度。长度; int列=度长度; 对于(int i=0;i,java,arrays,2d,Java,Arrays,2d,为什么输出会在第6列中重复第4列,我可以得到帮助来修复它 代码用于计算R(θ)=Vo^2 sin(2θ)/g,具有不同的起始角和初始速度值。第4列和第6列的值可以不同,只是Math.sin(2*Math.toRadians(deg[j])会为Math.sin(2*Math.toRadians(40))和Math.sin产生不同的值(2*Math.toRadians(50)) 但是, int[] speed = {25, 30, 35, 40, 45};//MPH double[] deg = {

为什么输出会在第6列中重复第4列,我可以得到帮助来修复它


代码用于计算R(θ)=Vo^2 sin(2θ)/g,具有不同的起始角和初始速度值。

第4列和第6列的值可以不同,只是
Math.sin(2*Math.toRadians(deg[j])
会为
Math.sin(2*Math.toRadians(40))
Math.sin产生不同的值(2*Math.toRadians(50))

但是,

int[] speed = {25, 30, 35, 40, 45};//MPH
double[] deg = {25, 30, 35, 40, 45, 50};//deg

int rows = speed.length;
int columns = deg.length;

for(int i = 0; i < rows; i++)
{
    for(int j = 0; j < columns; j++)
    {
        trajectory[i][j] = ((Math.pow((speed[i] / 2.237), 2) * Math.sin(2 * Math.toRadians(deg[j]))) / gravity);
    }
}

for(int i = 0; i < rows; i++)
        {
            System.out.printf("%5d   ", speed[i]);  
            for(int j = 0; j < columns; j++)
            {
                System.out.printf("%9.2f", trajectory[i][j]);
            }
            System.out.println();
        }
/* 25        9.76    11.04    11.98    12.55    12.74    12.55
   30       14.06    15.89    17.25    18.07    18.35    18.07
   35       19.14    21.63    23.47    24.60    24.98    24.60
   40       24.99    28.25    30.66    32.13    32.63    32.13
   45       31.63    35.76    38.80    40.66    41.29    40.66
*/
因此,对于
θ==40的列和
θ==50的列,可以得到相同的结果


你的计算没有错。正如你所读到的,如果θ是45度,就可以得到最大距离,所以得到相同的距离(比最大距离小一点)也就不足为奇了40度和50度。

您如何声明和创建
轨迹
?您对
重力
使用的值是什么?它是什么类型?在移动设备上,如果格式错误,非常抱歉。double[][]轨迹=新的double[速度.长度][deg.长度];double gravity=9.8;问题由Eran回答。我不知道是什么错了,但代码是有效的。是的,当我查看代码时,我发现这只是因为数学结果是一样的,因为没有任何明显的错误。我只是不知道为什么。:-)
sin(2*θ) == sin(180-2*θ) == sin(2*(90-θ))