Al realizar una operación entre 2 datos, el tipo del resultado es el mismo que el tipo de datos más grande de entre los dos operandos. Por ejemplo:
Operar 2 ints -> Resultado: int.
Operar int y float -> Resultado: float.
Operar int y short -> Resultado: int.
... Y así con cualquier tipo.
Si realizas una operación entre dos enteros, el resultado será un entero. Entonces:
int a = 3;
int b = 2;
printf("Resultado %d/%d = %d", a
, b
, a
/b
); // Resultado 3/2 = 1
Para obtener el resultado con decimales debes hacer una conversión de cualquiera de los datos a algún tipo decimal (float/double).
int a = 3;
int b = 2;
printf("Resultado %d/%d = %.1f", a
, b
, (float)a
/b
); // Resultado 3/2 = 1.5
PD: Para mostrar un número decimal hay que utilizar "%f". El ".1" indica que muestre el número con un solo dígito decimal.