Uso de float para una división en lenguaje C

Je voudrais diviser deux int pour avoir un float. Mais dans mon programme, ça ne fonctionne pas il m'affiche 1,000000. Est-ce en raison de mon void modification(int * a ) ?
Mon programme :
1 #include <stdio.h> 2 void modificacion(int * a ) 3 4 { 5 *a=15; 6 } 7 int main() 8 { 9 int a = 15; 10 int b = 23; 11 float f; 12 printf("%d\n",b); 13 modificacion(&b); 14 f = (float)b / a; 15 printf("%f \n",f) ; 16 17 return 0; 18 19 } 20

3 respuestas

  1. Colaborador
    Hola Ruvox,

    Prueba esto:

    f = (float) b / a; 


    Si no haces un cast de uno de los valores al tipo
    float
    , haces una división de dos tipos enteros y el lenguaje C entiende que quieres hacer una división entera y te da naturalmente un resultado que trunca los decimales.

    Basta con que uno de los operandos de la división sea de un tipo
    float
    o
    double
    , según el tipo de resultado deseado, para que el C realice una división con decimales.

    Dal
    0