Programmation C

rim elwsaef -  
Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,


float variable;
int N=100;
int nza=145;

variable = N/nza;
printf("%f\n", variable);

Pourquoi il m'affiche 0 au lieu de 0.689 ?

Merci

2 réponses

NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Par ce que N et nza sont des entiers.
0
Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Bonjour,

En C, la division de 2 nombres entier est Euclidienne, on obtient donc un nombre entier.
Pour obtenir une opération flottante, il faut forcer au moins un des 2 à être flottant.
variable = (float)N / nza;
Donne le résultat escompté.
0