cs_darkwhite
Messages postés133Date d'inscriptionvendredi 17 novembre 2000StatutMembreDernière intervention29 avril 2008
-
15 mai 2007 à 07:14
katsankat
Messages postés571Date d'inscriptionvendredi 30 décembre 2005StatutMembreDernière intervention12 juillet 2012
-
16 mai 2007 à 01:27
Salut a tous je suis en train de faire un code ultra simple qui arrondi un nombre :
#include <stdio.h>
#include <math.h>
int main()
{
double value;
scanf("%f",&value);
printf("%f",round(value));
return 0;
}
Or ah la compilation gcc refuse, et butte sur la fonction round
darkwhite:/media/sda5/Dossier pierre/c/ioi# gcc -lm -o arrondi arrondi.c
arrondi.c: In function ‘main’:
arrondi.c:7: warning: incompatible implicit declaration of built-in function ‘round’
Pourtant j'ai bien declaré math.h et j'ai ajouté -lm a la commande gcc ????
cs_darkwhite
Messages postés133Date d'inscriptionvendredi 17 novembre 2000StatutMembreDernière intervention29 avril 2008 15 mai 2007 à 21:53
J'ai toujours ce message d'erreur :
darkwhite:/media/sda5/Dossier pierre/c/ioi# gcc -lm -o arrondi arrondi.c
arrondi.c: In function ‘main’:
arrondi.c:8: warning: incompatible implicit declaration of built-in function ‘round’
*mais le code semble marché
sauf qu'il est refusé par le site sur lequel je le soumet (ioi)
katsankat
Messages postés571Date d'inscriptionvendredi 30 décembre 2005StatutMembreDernière intervention12 juillet 20123 16 mai 2007 à 01:27
Plusieurs idées.
1) Regarder le ficher /usr/include/math.h et les includes-sous-jascents.
Peut-être que la réponse s'y trouve. Ou que round() n'y figure pas! D'ou l'histoire de built-in! En effet round() ne figure pas dans la LibC.
2) Passer une option à gcc qui va juste invoquer le préprocesseur, sans compiler ni linker. Par exemple gcc -E main.c > test.txt
Puis ouvrir test.txt et rechercher le mot round.
3) Compiler avec -std=c99 et linker avec -lm.
4) Passer l'option -fno-builtin-round pourrait cacher le warning.
5) Essayer avec ceil() ou floor() plutôt que round().