Problem in calculating angle of image rotation?

I m start learning game development. As a beginner i create one demo game in which one cannon hit bullets to the enemies (coming toward cannon from different direction. Now i stuck on cannon sprite image rotation anywhere user touch on the screen or enemies. How i do that, My initial code as following,

     void HelloWorld:: ccTouchesBegan(CCSet *touches, CCEvent * event)
       {
         CCSize winSize = CCDirector::sharedDirector()->getWinSize(); 
         CCTouch* touch = (CCTouch*)( touches->anyObject() );
         CCPoint location = touch->locationInView(touch->view());
         location = CCDirector::sharedDirector()->convertToGL(location);

         //Rotate cannon direction toward touch point
         CCPoint diffPoint = ccpSub(_cannonImage->getPosition(), location);
         float angleRadians = atanf((float)diffPoint.y/(float)diffPoint.x);
         float angleOffset = CC_DEGREES_TO_RADIANS(90);

    if(diffPoint.x < 0){
        angleRadians += angleOffset;
    }else{
        angleRadians -= angleOffset;
    }

    CCLog("angle to be rotate = %f", angleRadians);

    _cannonImage->runAction(CCRotateBy::actionWithDuration(0.1, angleRadians));

}