The correct option is B with having had a dramatic effect on his tennis
The given sentence uses the wrong idiom and also mixes up tenses.
While ‘credit for’, ‘credit with’ and ‘credit to’ are all idiomatic, they are used in different contexts.
‘Credit with’ is used to ascribe an achievement to someone/something. The word ‘credit’ is used as a verb here.
In the expression ‘credit for’, the word ‘credit’ is used as a noun. To get credit for something is to get recognition for it (e.g. You deserve credit for your work).
‘Credit to’ is normally used in the context of payment (e.g. credit money to an account), or to credit accomplishments to an entity (e.g. All credit to her for succeeding in the venture).
In the given sentence, ‘credit’ is used as a verb. The correct idiomatic expression in this context is ‘credit with’.
Also note that ‘has credited’ is in present perfect tense, indicating that the action has been completed in the very recent past. This cannot be used with the present continuous verb ‘having’. The correct verb form to use in the given context is ‘having had’.
Correct Answer: B