我有一个整数数组,我需要找到最接近零的整数(正整数优先于负整数。)
这是我到目前为止的代码:
public class CloseToZero {
public static void main(String[] args) {
int[] data = {2,3,-2};
int curr = 0;
int near = data[0];
// find the element nearest to zero
for ( int i=0; i < data.length; i++ ){
curr = data[i] * data[i];
if ( curr <= (near * near) ) {
near = data[i];
}
}
System.out.println( near );
}
}
目前我得到-2的结果,但我应该得到2。我做错了什么?
原文由 user3172930 发布,翻译遵循 CC BY-SA 4.0 许可协议
对数组进行排序(添加一行代码),如果为具有相同距离的正数和负数选择相同的绝对值,则您选择的最后一个数字将为正数。
源代码: