[debutant] probleme avec IF en langage c

Résolu
shivery Messages postés 8 Statut Membre -  
shivery Messages postés 8 Statut Membre -
Bonjour,
j'ai une erreur au niveau du if et je n'arrive pas a le résoudre.
Pouvez vous m'aider s'il vous plait.
Merci

#include<stdio.h>

main(){
float a,b,somme;
char signe;

printf ("Entrez le signe opératoire (+):\n",signe);
scanf ("%c",&signe);

printf ("Entrez deux nombres reels a b:\n");
scanf ("%f",&a,&b);

if (signe == +){
printf ("Vous avez choisi une SOMME\n",somme);
somme = a + b;
printf ("%f\n",somme);
}

system ("pause");
return 0;

}
Configuration: Windows Vista
Firefox 2.0.0.12

6 réponses

  1. ibou52 Messages postés 81 Statut Membre 60
     
    le signe + doit etre entre guilemets
    exple: "+"
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Salut,
      Non, il ne doit pas être entre guillemets, mais entre apostrophe : il s'agit d'un char ;)

      Cordialement
      0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut
    Il y avait une deuxième erreur au niveau du scanf.
    Je te corrige tout :
    #include<stdio.h>
    
    main(){
    float a,b,somme;
    char signe;
    
    printf ("Entrez le signe opératoire (+):\n",signe);
    scanf ("%c",&signe);
    
    printf ("Entrez deux nombres reels a b:\n");
    scanf ("%f %f",&a,&b);
    
    if (signe == '+'){
    printf ("Vous avez choisi une SOMME\n",somme);
    somme = a + b;
    printf ("%f\n",somme);
    }
    
    system ("pause");
    return 0;
    
    }
    


    Cordialement
    0
    1. ibou52 Messages postés 81 Statut Membre 60
       
      c'est vrai.
      0
  3. shivery Messages postés 8 Statut Membre 1
     
    Merci beaucoup!
    cela fait deux heures que je penchais sur cette erreur!
    Merci beaucoup!
    0
  4. shivery Messages postés 8 Statut Membre 1
     
    avec la correction fournie, j'ai terminé mon programme.

    #include<stdio.h>

    main(){
    float a,b,somme,difference,produit,divise,signe;

    printf ("Entrez le signe opératoire (+,-,* ou /):\n",signe);
    scanf ("%c",&signe);

    printf ("Entrez deux nombres reels a b:\n");
    scanf ("%f %f",&a,&b);

    if (signe = '+'){
    somme = a + b;
    printf ("Resultat: %f + %f = %f \n",a,b,somme);
    }

    if (signe = '-'){
    difference = a - b;
    printf ("Resultat: %f - %f = %f \n",a,b,somme);
    }

    if (signe = '*'){
    produit = a * b;
    printf ("Resultat: %f * %f = %f \n",a,b,somme);
    }

    if (signe = '/'){
    divise = a / b;
    printf ("Resultat: %f / %f = %f \n",a,b,somme);
    }

    system ("pause");
    return 0;

    }

    Cependant il ne fait pas les diverses opérations. Il marque le tout sans effectuer le calcul. que dois modifier svp.
    Merci.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,

    C'est normal, tu stockes les résultats dans produit, somme, divise, difference et tu affiches toujours somme.
    Voici donc la modification ;)
    #include<stdio.h>
    
    main(){
    float a,b,somme,difference,produit,divise,signe;
    
    printf ("Entrez le signe opératoire (+,-,* ou /):\n",signe);
    scanf ("%c",&signe);
    
    printf ("Entrez deux nombres reels a b:\n");
    scanf ("%f %f",&a,&b);
    
    if (signe = '+'){
    somme = a + b;
    printf ("Resultat: %f + %f = %f \n",a,b,somme);
    }
    
    if (signe = '-'){
    difference = a - b;
    printf ("Resultat: %f - %f = %f \n",a,b,difference);
    }
    
    if (signe = '*'){
    produit = a * b;
    printf ("Resultat: %f * %f = %f \n",a,b,produit);
    }
    
    if (signe = '/'){
    divise = a / b;
    printf ("Resultat: %f / %f = %f \n",a,b,divise);
    }
    
    system ("pause");
    return 0;
    
    } 
    
    
    0
  7. shivery Messages postés 8 Statut Membre 1
     
    Merci bcp!
    0