Velvet Star Monitor

Standout celebrity highlights with iconic style.

updates

Required: Variable Found: Value

Writer Andrew Henderson
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?

3 Answers

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.

0

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]);

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.