21st is correct. 21th is not.
After a number ending in 1 (except 11) you always put st. So 21st, 51st, 4001st and so on. Only 11 takes a th, so we say eleventh.
For all numbers ending in 2 (except 12) you put nd. So 2nd, 22nd, 402nd and so on. For 12, you say twelfth. 12th.
For numbers ending in 3 (except 13) you put rd. 23rd, 83rd etc. But thirteenth. 13th.
For all other numbers, you use th.