You have several problems:
Use d for signed integers.
Use u for unsigned integers.
char and short are promoted to int. Don’t add ll or l to them.
Add l with long types, not ll.
Edit:
To clarify:
int == %d
unsigned int == %u
long == %ld
unsigned long == %lu
Also you cannot represent range of signed integer with the same data type, you need to use bigger type. INT_MAX-INT_MIN won’t work. It needs to be (long)INT_MAX-(long)INT_MIN and you need to use %ld to display it. And even that won’t work if sizeof int == sizeof long.
6
solved printing the ranges of fundamental datatypes in c