ExtendeD Le 25/10/2002 à 16:04Edité par ExtendeD le 25/10/2002 à 18:34 maxpage = flc/6;
if (!(flc%6))
maxpage--;
peut-etre ?
[edit : le bout de code était faux]
1. Pour ton problème, la solution la plus simple est:
maxpage=(flc-1)/6;
Pas la peine de mettre floor, on travaille sur des entiers, donc la division est une division euclidienne, et on n'a que le quotient, pas le reste!
2. Si tu veux travailler sur des nombres à virgule, il faut d'abord convertir flc en float:
float temp;
temp=(float)maxpage/6; /*non, il ne manque pas de parenthèse ici! C'est bien maxpage seul qu'il faut transtyper! */
if (temp==floor(temp)) // si temp entier
temp--;
maxpage=temp;
Mais c'est juste pour te montrer comment on travaille avec des nombres à virgule! Ne te complique pas la vie, maxpage=(flc-1)/6; suffit!
Je pense que tu n'as pas compris que contrairement au BASIC et au Pascal, en C, la division n'est pas automatiquement une division en virgule flottante, mais que si on travaille sur des entiers, c'est une division euclidienne.