Polar and Cartesian

I am getting an “expected expression” error on this line:

} else if (y > 0) {

in the following snippet:

void cartesianToPolar(float x, float y, double *rPtr, double *thetaPtr){

// store the radius in the supplied address
*rPtr = sqrt(x * x + y * y);

// calculate theta

float theta;
if (x == 0.0){
    if (y == 0.0); {
    theta = 0.0; // technically considered undefined
    } else if (y > 0) {
    theta = M_PI_2;
} else {
    theta = - M_PI_2;
}
} else {
    theta = atan(y/x);
}
// store theta in the supplied address
*thetaPtr = theta;

}

I manually typed the example straight from the book. Any ideas on what might be wrong here?

Thanks!

[quote]
I am getting an “expected expression” error on this line:

} else if (y > 0) {

... float theta; if (x == 0.0){ if (y == 0.0); { theta = 0.0; // technically considered undefined } else if (y > 0) { ... [/quote]
Delete the semicolon after the second if:

... float theta; if (x == 0.0) { if (y == 0.0) { theta = 0.0; // technically considered undefined } else if (y > 0) { ... [

Thanks. But actually, I just needed to remove the ; at the end of that line :cry: