Emmanuel Delahaye C is a sharp tool | JimmyW a écrit :
Le code modifié ainsi fonctionne :
Code :
int main() { int x=1,y=3; float a; a =1./3.; a =(float)(x)/(float)(y); a =.3333; return 0; }
|
Est-ce la seule méthode (sachant que x et y sont int) ? Est-ce la plus rapide ?
|
Balises code please...
main.c: In function `main_':
main.c:13: error: implicit declaration of function `printf'
main.c:13: warning: nested extern declaration of `printf'
<internal>:0: warning: redundant redeclaration of 'printf'
main.c:20:2: warning: no newline at end of file
|
Je t'ai déjà dit qu'il fallait faire les calculs en double. Dans ton code, il y a 40.000 conversions float/double, c'est horrible et inefficace.
#include <stdio.h>
int main (void)
{
int x = 1, y = 3;
double a;
a = 1. / 3;
printf("1) a=%f \n", a);
a = x / (double)y;
printf("2) a=%f \n", a);
a = .333333;
printf("3) a=%f \n", a);
return 0;
}
|
Message édité par Emmanuel Delahaye le 22-02-2006 à 19:22:11 ---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
|