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;
}
For some reason, the second line in the if statement is returning as unexpected type– required: variable found: value. I tried == and that obviously didn't work. Any insight?
You switched the operands in your assign statement.
Switch this
Math.abs(a[i]-a[i-1]) = biggestGap;
to this
biggestGap = Math.abs(a[i]-a[i-1]);
Math.abs(a[i]-a[i-1])
returns just an int value (no variable reference or similar). So your trying to assign a new value to a value. Which is not possible. You can just assign a new value to a variable.
You have reversed your assign statement. Change it to
biggestGap = Math.abs(a[i]-a[i-1]);
You are trying to assign the value of biggestGap
to the number returned by Math.abs()
. Naturally, you can't, because that value depends on what Math.abs()
contains and how it handles its arguments.
Perhaps you meant the opposite:
biggestGap = Math.abs(a[i]-a[i-1]);
来源:https://stackoverflow.com/questions/16482488/required-variable-found-value