Utilisation du float pour une division en langage 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 modification(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 modification(&b);
14 f = b / a;
15 printf("%f \n",f) ;
16
17 return 0;
18
19 }
20

3 réponses

  1. Contributeur
    Salut Ruvox,

    Essaye ceci :

    f = (float) b / a;
    


    Si tu ne fais pas un cast de l'une des valeurs sur le type
    float
    , tu fais une division de deux types entiers et le langage C comprend alors que tu veux faire une division entière et te donne naturellement un résultat qui tronque les décimales.

    Il suffit que l'une des opérandes de la division soit d'un type
    float
    ou
    double
    , selon le type du résultat souhaité pour que le C fasse une division avec décimales.

    Dal