Probleme avec C++

Résolu/Fermé
silentwar Messages postés 2 Date d'inscription dimanche 11 décembre 2011 Statut Membre Dernière intervention 11 décembre 2011 - 11 déc. 2011 à 20:37
silentwar Messages postés 2 Date d'inscription dimanche 11 décembre 2011 Statut Membre Dernière intervention 11 décembre 2011 - 11 déc. 2011 à 22:01
Bonjour,
j'ai un probleme avec mon code , j'ai comme resultat toujours 1 meme si j'entre n'importe quel nombre , Merci en avance pour votr aide :
Mon code :
#include <iostream>

using namespace std;

float oper ( float n1,float n2,char op)
{float resultat ;

switch (op)
{
case '+': {
resultat = n1+n2;
break ;
}
case '-':
{
resultat = n1-n2;
break;
}
case '*':
{
resultat = n1*n2;
break;
}
case '/':
{
resultat = n1/n2;
break;
}
default :
{
resultat = n1+n2;
break;

}
}
}

int main()
{
float oper ( float ,float ,char );
float t, h ;
char o ;
cout <<"n1 svp\n";
cin >>t ;
cout <<"n2 svvp\n";
cin >>h;
cout <<"op\n";
cin >> o ;
oper(t,h,o);

cout <<oper<<endl;

}



2 réponses

loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
11 déc. 2011 à 21:35
Ce n'est pas vraiment avec C++ qu'il y a un problème !
2 erreurs majeures:
- ta fonction 'float oper...' ne retourne rien; ce n'est pas parce que la variable s'appelle 'resultat' que la valeur de cette variable sera retournée à l'appellant; il est donc indispensable de terminer la fonction par:
  return resultat;
- dans le 'main' tu appelles la fonction 'oper' sans te préoccuper de la valeur retournée... ce qui ne sert, dans le cas présent, strictement à rien. Par contre, dans la ligne suivante, tu crois appeller la fonction 'oper', mais sans parenthèses la fonction n'est pas appellée; d'ailleurs le compilateur, si tu lui demandes de te retourner les 'warning' doit te l'indiquer. Donc il te faut écrire:
cout << oper(t, h, o) << endl;
Bonne continuation.
1
silentwar Messages postés 2 Date d'inscription dimanche 11 décembre 2011 Statut Membre Dernière intervention 11 décembre 2011
11 déc. 2011 à 22:01
Merci loupius pour ta réponse , mon code fonctionne maintenenant
0