As you can see from the code snippet below, I have declared one char variable and one int variable. When the code gets compiled, it must identify t
char
int
Compiler may be smart, but functions printf or scanf are stupid - they do not know what is the type of the parameter do you pass for every call. This is why you need to pass %s or %d every time.
printf
scanf
%s
%d