Closed. This question is not reproducible or was caused by typos。它当前不接受答案。












想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。

5年前关闭。





当我为这个项目编写代码很有趣时,我迷上了要获取所需输出的过程:从输入2和-2中获取正数元素。

简而言之,我希望输出是正2而不是负2。

一般的想法是使最接近的元素为零。但是在这里,我假设正数接近0。

希望你们中的任何人都能回答我的问题。我个人想提高Java的水平,以便现在或以后可以像我一样帮助新手。无论如何,谢谢你。

  static int getClosestToZero(int[] array) {
    int num = array[0];
    int absNum = Math.abs(num);
    for(int i = 1; i < array.length; ++i) {
        int newAbs = Math.abs(array[i]);
        if(newAbs < absNum) {
            absNum = newAbs;
            num = array[i];

            }
        }

    return num;
}
public static void main(String[] args) {

            int[] myArray = {-2, 2};

            System.out.println(getClosestToZero(myArray));
        }

最佳答案

这应该工作:

static int getClosestToZero(int[] array)
{
    int num = array[0];
    int absNum = Math.abs(num);
    for (int i = 1; i < array.length; ++i)
    {
        int newAbs = Math.abs(array[i]);
        if (newAbs < absNum)
        {
            absNum = newAbs;
            num = array[i];

        }else if(newAbs == absNum && array[i]>=0)//if equals and the current is positive, then take it
        {
                num = array[i];
        }
    }

    return num;
}

10-06 15:38