Cita:
Iniciado por AlanChavez Sin embargo, si divido 5/4 , 3/2, 24/7, etc...
la variable div, tendra un desbordamiento ya que el resultado es de coma flotante y la tienes declarada como entera.
Esto no es tan cierto.
En C existe clausura. Si divides 2 enteros, el resultado es entero. El resultado no depende del tipo de la variable a la que asignas el resultado.
Es cierto que si deseas el resultado float deberias hacer cambios en el programa.
Una parte de la solucion es definir div como float, pero no es suficiente. Para lograr el resultado float, los operandos, al menos 1 de ellos tiene que ser float. Lo logras haciendo un cast.
float div;
...
div = num1 / num2; // <-- resultado entero convertido a float, resultado no exacto
div = (float) num1 / num2; // convierte num1 a float antes de dividir
div = num1 / (float) num2; // convierte num2 a float antes de dividir
div = (float) num1 / (float) num2; // convierte num1 y num2 a float antes de dividir