Page 2 sur 2

Posté : 26 juin 2008, 16:23
par thom986
vous faite comment pour afficher les espaces dans vos messages.
EDIT j'ai trouvé...

Posté : 26 juin 2008, 16:42
par teckno1
Ouai, ça marche avec du long et du %lf, Bizarre :hein: .
Merci les gas. ;)

Posté : 26 juin 2008, 16:45
par Ineluki
Ouais ça devait être la balise code.

Par contre, j'ai 102 erreurs à la compil avec ton code. En enlevant iostream, il en reste plus que 4. Comprend pas. :desole:

Et pis si tu fais référence aux pointeurs, aux fonctions, etc... ca risque d'être dur à avaler pour lui. :biggrin: Le pauvre.

En fait, celui-ci a l'air de marcher, grâce aux float de thom, mais si on remet des double à la place, ça refoire... Thom, c'est pas censé être juste une question de taille la différence entre les deux? Comment ça s'fait qu'ça foire? =S

Code : Tout sélectionner


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{   float resultat = 0, nombre = 0; // avec double ça marche pas

     printf("Choisis un nombre entier positif\n\n");
    scanf("%f", &nombre);
   
    printf("La racine carree de %f est %f\n",nombre,sqrt(nombre));
 
    system("PAUSE");
    return 0;
} 
Grrrrhh, j'aime pas quand ça marche pas de façon claire...

Posté : 26 juin 2008, 16:48
par thom986
Perso, je me sers quasiment que des décimaux Float (%f dans les printf)
et des entier Int
En taille ça donne un peu près ça:

short int ≤ int ≤ long int
float ≤ double ≤ long double

Sachant que long=long int
EDIT
:desole: Bizarre mon code marche très bien chez moi...
Image
En fait, je sais pas si c'est cela, mais faut vraiment éviter les conversions entre type, Si tu lui donne un float, et qu'après tu veux le transformer en double, souvent ça foire.
Surtout que la dans le cas present on utilise une librairie avec des fonctions préfabriqué.

Dans ce cas sqr doit être une fonction qui retourne un float.

Posté : 26 juin 2008, 17:16
par Ineluki
Ouais, bizarre pour ton code. Problème d'IDE?

Sinon, le problème des float / double vient d'ici.

Le gars propose

Code : Tout sélectionner

double resultat = 0, nombre = 100;

resultat = sqrt(nombre); // resultat vaudra 1
Il utilise donc bien un double pour le return de sqrt.

Là, ça marche, mais une fois qu'on fait un scanf dans un double, ça foire. Ensuite j'ai refait en essayant avec ton idée du float, et ça marche.

Bref, du moment qu'on a un code qui marche, c'est le principal, hein !

Là, je réecris les fonctions comme strcat, strcpy, strcmp... Je crois que j'ai pas fini d'avoir besoin d'aide :sleepy: