[debutant] probleme avec IF en langage c

Résolu/Fermé
shivery Messages postés 8 Date d'inscription mercredi 29 novembre 2006 Statut Membre Dernière intervention 17 février 2008 - 17 févr. 2008 à 16:38
shivery Messages postés 8 Date d'inscription mercredi 29 novembre 2006 Statut Membre Dernière intervention 17 février 2008 - 17 févr. 2008 à 17:18
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;

}

6 réponses

ibou52 Messages postés 81 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 24 août 2008 60
17 févr. 2008 à 16:40
le signe + doit etre entre guilemets
exple: "+"
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
17 févr. 2008 à 16:43
Salut,
Non, il ne doit pas être entre guillemets, mais entre apostrophe : il s'agit d'un char ;)

Cordialement
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
17 févr. 2008 à 16:41
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
ibou52 Messages postés 81 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 24 août 2008 60
17 févr. 2008 à 16:45
c'est vrai.
0
shivery Messages postés 8 Date d'inscription mercredi 29 novembre 2006 Statut Membre Dernière intervention 17 février 2008 1
17 févr. 2008 à 16:54
Merci beaucoup!
cela fait deux heures que je penchais sur cette erreur!
Merci beaucoup!
0
shivery Messages postés 8 Date d'inscription mercredi 29 novembre 2006 Statut Membre Dernière intervention 17 février 2008 1
17 févr. 2008 à 17:09
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
17 févr. 2008 à 17:12
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
shivery Messages postés 8 Date d'inscription mercredi 29 novembre 2006 Statut Membre Dernière intervention 17 février 2008 1
17 févr. 2008 à 17:18
Merci bcp!
0