2013-04-09 63 views
-1

我們要找出連續輸入值之間的差異並返回最大的變化。 我的主要問題是找到正確的操作符來使用(我認爲)。此外,我希望它與負值工作..找到java中沒有數組的兩個雙打之間的最大差異

if(count > 0){ 
     change = Math.abs(temp) - Math.abs(temp2); 
     UI.println(change); 
     if(Math.abs(change) > Math.abs(bigChange)){ 
      bigChange = Math.abs(change); 
     } 
} 
+0

你應該使用方法,而不是最大的第二如果 – 2013-04-09 10:09:36

+1

有沒有必要添加「解決」的問題或標題,這不是一個論壇。這個問題會自動標記爲已回答,並且在您接受答覆時會特別標記。 – 2013-04-09 10:52:04

回答

1

您使用abs是不正確的。考慮的情況下溫度爲-1,TEMP2是1.這些值之間的差爲2,但你的程序將計算它爲0

嘗試:

if(count > 0) { 
    change = Math.abs(temp - temp2); 
    UI.println(change); 
    if(change > bigChange) { 
    bigChange = change; 
    } 
} 
+0

非常感謝您=)這正是我所希望的。 – 2013-04-09 10:14:36

0

,如果你想找到的變化以數字之間你應該使用

change = Math.abs(temp- temp2); 

,而不是

change = Math.abs(temp) - Math.abs(temp2); 

而且你應該怎麼nitialize變量

bigChange=0 

此外,由於變量的變化和bigChange總是大於零,就可以避免再次調用Math.abs方法。

if(change > bigChange) 
     { 
      bigChange = change; 
     } 

也是正確的。

0

它應該是相當簡單:

int diff = temp - temp2; 
max = Math.max(maxDifference, Math.abs(diff)); 
println(max). 

你有什麼其他的要求嗎? Math.max和Math.min相當優化,並且與自己進行比較一樣快。這是一個單線。看到這個答案,以及對Math.max VS(A> B?A:B)

Is Math.max(a,b) or (a>b)?a:b faster in Java?

相關問題