Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java整数数组,看来我不会做简单的数学_Java_Arrays - Fatal编程技术网

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保留以前的值,没有数据被销毁。