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语句中的第二行是以意外类型的形式返回:变量found:value。我试过==这显然不起作用。有什么见解吗?
答案 0 :(得分:5)
您已撤消了您的分配声明。将其更改为
biggestGap = Math.abs(a[i]-a[i-1]);
答案 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值(没有变量引用或类似的)。因此,您尝试为值分配新值。这是不可能的。您只需为变量分配新值即可。
答案 2 :(得分:0)
您正尝试将biggestGap
的值分配给Math.abs()
返回的数字。当然,您不能,因为该值取决于Math.abs()
包含的内容以及它如何处理其参数。
也许你的意思相反:
biggestGap = Math.abs(a[i]-a[i-1]);