Langage C, Valeur absolu, fabs

Résolu
Valerian13
Messages postés
14
Date d'inscription
lundi 12 mars 2007
Statut
Membre
Dernière intervention
16 septembre 2020
- 20 sept. 2008 à 12:18
SAKingdom
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
- 20 sept. 2008 à 18:17
Bonjour, donc je suis plus qu'un débutant :p
Et je suis les instructions d'un forum pour apprendre. Et avec ce code source, qui est censé calculer la valeur absolu d'un nombre, j'ai de petits problemes!
Donc voici le code:

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

int main(int argc, char *argv[])
{    double absolu 0, nombre 0;

    printf("Calcul de la valeur absolue\n\nEntrer nombre : "); //On demande d'entrer un nombre
    scanf("%ld", &nombre);
   
    absolu = fabs(nombre);

    printf("Valeur absolue = %ld\n", absolu); //Valeur absolue du nombre calculée

    system("PAUSE");   
    return 0;
}
Donc avec celui ci, si je rentre un nombre la fonction fabs me retournera quelque soit le signe( - ou +) le même nombre. Déjà que le programme ne sert pas a grand chose, alors là il sert vraiment a rien pour le coup :p
double absolu 0, nombre 0;
En changeant ce double par int ça marche, par contre je peux plus le faire avec des nombre décimaux...

Du coup j'ai essayé de mettre double a la place de int dans la déclaration de fonction :
int main(int argc, char *argv[])
Et ça refait comme au début

Et pour finir en laissant
double main(int argc, char *argv[]),
et en mettantint absolu 0, nombre 0;
On ne voit toujours pas la valeur absolu pour les nombres décimaux

Voila si quelqu'un pourrait m'aider, merci d'avance je pense pas que ça doit etre bien dur a résoudre (j'utilise Visual C++)

8 réponses

SAKingdom
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
20 sept. 2008 à 17:33
%lf
et non
%ld

int main(int argc, char *argv[])
{    double absolu 0, nombre 0;
   
    printf("Calcul de la valeur absolue\n\nEntrer nombre : "); //On demande d'entrer un nombre
    scanf("%lf", &nombre);
   
    absolu = fabs(nombre);
   
    printf("Valeur absolue = %lf\n", absolu); //Valeur absolue du nombre calculée
    return 0;
}

C++ (@++)
2