Java整数数组,看来我不会做简单的数学
我的代码如下:Java整数数组,看来我不会做简单的数学,java,arrays,Java,Arrays,我的代码如下: int lines = 0; while(lines < 2) { int[] oldarr = parr; for(int i = 0; i < arrsize; i++) System.out.print(" " + oldarr[i]); System.out.println(); for(int i = 0; i < arrsize; i++) { if(i == 0)
int lines = 0;
while(lines < 2)
{
int[] oldarr = parr;
for(int i = 0; i < arrsize; i++)
System.out.print(" " + oldarr[i]);
System.out.println();
for(int i = 0; i < arrsize; i++)
{
if(i == 0)
parr[i] = 0;
else
parr[i] = Math.abs(oldarr[i] - oldarr[i-1]);
}
lines++;
}
int行=0;
while(行数<2)
{
int[]oldarr=parr;
对于(int i=0;i
parr是大小为[arrsize]的整数数组。每次通过这个循环,我都想打印parr中每个索引的值,然后将每个索引设置为它前面的索引和它本身之间的差值。目前,它为我提供了正确的(硬编码)原始parr。但是下一次(第一次)改变parr的迭代给了我意想不到的值;它们甚至不接近两个相邻值之间的差值
有什么想法吗?您没有用这一行复制阵列:
int[] oldarr = parr;
这两个变量仍然指向同一个数组
要获取副本,您可以执行以下操作:
int[] oldarr = Arrays.copyOf(parr, parr.length);
您没有使用此行复制阵列:
int[] oldarr = parr;
这两个变量仍然指向同一个数组
要获取副本,您可以执行以下操作:
int[] oldarr = Arrays.copyOf(parr, parr.length);
在第二个
for
循环中,您将新值设置为当前值和上一个值的差值,但上一个值在for
循环的上一次迭代中已更改
将第二次for
循环迭代更改为向后迭代数组,这样计算就不依赖于以前的计算
for(int i = arrsize - 1; i >= 0; i--)
在第二个
for
循环中,您将新值设置为当前值和上一个值的差值,但上一个值在for
循环的上一次迭代中已更改
将第二次for
循环迭代更改为向后迭代数组,这样计算就不依赖于以前的计算
for(int i = arrsize - 1; i >= 0; i--)
你的电话号码是多少?整数溢出问题?不,不,只是值不正确。假设parr=“1,2”下一次迭代打印出“0,4”。只是不是[i]-[i-1]应该是什么。你的号码是多少?整数溢出问题?不,不,只是值不正确。假设parr=“1,2”下一次迭代打印出“0,4”。只是不是[i]-[i-1]应该是的。谢谢。我知道是这样的。我正要用for循环手动完成它。(对不起,我还不太懂java)谢谢你。我知道是这样的。我正要用for循环手动完成它。(抱歉,我还不太了解java)oldarr保留以前的值,没有数据被销毁。oldarr保留以前的值,没有数据被销毁。