2013-05-10 64 views
2
public static int biggestArrayGap(int []a, int n) 
{ 
int biggestGap = Math.abs(a[1]-a[0]); 
    for (int i=1; i<n-1; i++) 
{ 
    if (Math.abs(a[i]-a[i-1]) > biggestGap)  
     Math.abs(a[i]-a[i-1]) = biggestGap; 
} 
    return biggestGap; 
} 

由於某種原因,if語句中的第二行以意外的type-required形式返回:variable found:value。我試過==,那顯然沒有工作。任何見解?必需:變量發現:值

回答

5

您已顛倒您的分配說明。將其更改爲

biggestGap = Math.abs(a[i]-a[i-1]); 
5

您在assign語句中切換了操作數。

開關此

Math.abs(a[i]-a[i-1]) = biggestGap; 

biggestGap = Math.abs(a[i]-a[i-1]); 

Math.abs(a[i]-a[i-1])返回剛剛int值(沒有變量參考或類似的)。所以你試圖給一個值賦一個新的值。這是不可能的。您只需爲變量指定一個新值即可。

+0

它生活!非常感謝。 – user2370043 2013-05-10 12:43:39

0

您正試圖將biggestGap的值分配給由Math.abs()返回的數字。當然,你不能,因爲這個價值取決於什麼Math.abs()包含以及它如何處理它的論點。

也許你的意思正好相反:

biggestGap = Math.abs(a[i]-a[i-1]);