Java 为什么我的二维阵列中的元素会重复? int[]速度={25,30,35,40,45}//每小时英里数 双[]度={25,30,35,40,45,50}//度 int rows=速度。长度; int列=度长度; 对于(int i=0;i
为什么输出会在第6列中重复第4列,我可以得到帮助来修复它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 = {
代码用于计算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-θ))