Okay, there are two parts to that:
a) the line mentioned in the error message:
sprintf() requires 2 or more parameters: the first is the text pattern, and the rest are the values to be substituted into the pattern.
$html_msg['EMAIL_MESSAGE_HTML'] = sprintf(EMAIL_PASSWORD_REMINDER_BODY, $new_password);
b) the pattern is defined in the constant declared in the password_forgotten.php language file:
You can see there that there is only one replacement mentioned in the pattern, denoted by %s.
define('EMAIL_PASSWORD_REMINDER_BODY', 'A new password was requested from ' . $_SERVER['REMOTE_ADDR'] . '.' . "\n\n" . 'Your new password to \'' . STORE_NAME . '\' is:' . "\n\n" . ' %s' . "\n\nAfter you have logged in using the new password, you may change it by going to the 'My Account' area.");
So, if your site is dying on line 45 as mentioned in the error message you quoted, then that tells me that EMAIL_PASSWORD_REMINDER_BODY isn't defined correctly, or isn't defined at all.
If you've gone into that file and edited the text to say something else, and in that editing process you decided to delete the %s, then it's not surprising that you'd get an error.
Or, if you've done other things to your site that tamper with the functions used to generate a value which is stored in the $new_password variable (esp the code in the functions_general.php file), then that could also cause similar problems. Installing addons that are not compatible with your version of Zen Cart could cause that. Or failed uploads resulting in incomplete functions files could also cause it. These kinds of things are outlined in the various FAQ articles dealing with troubleshooting problems, including the one you've apparently seen about blank pages and debug logs: http://www.zen-cart.com/content.php?124-blank-page
So, this leads me to this basic guide to finding out what's wrong: compare your site's files against the original files, and fix whatever was changed incorrectly: http://www.zen-cart.com/wiki/index.p...Obscure_Issues