Fehler im Programm (gelöst)
-
Das Taschenrechner Programm lässt sich einwandfrei Compilen, aber bei der Eingabe gibt es wieder den eingegeben Wert aus.
AUFBAU
*
main()Ein- und Ausgabe
fkt()
Auswertung
*#include <iostream> #include <windows.h> #include <conio.h> #include <cmath> using namespace std; double fkt(char, double); main(void) { char eingabe1; // eingabe 1: operator double eingabe2; // eingabe2: zahl system("title TITLE"); cout<< "= " << 0 << endl; do { cin>>eingabe1; cin>>eingabe2; cout<< fkt(eingabe1, eingabe2) << endl; } while(getch() !=27); } double fkt(char a, double x) { static double tmp = 0; switch(a) { case '+': return(tmp+x); case '-': return(tmp-x); case '*': return(tmp*x); case '/': return(tmp/x); case '^': return(pow(tmp, x)); case '|': return(pow(tmp,(1/x))); default: return(0); } }
-
Und warum sollte es was anderes tun?
0+1=1
0-3=-3
Und beim Rest stimmt das ergebnis!
0*93=0
0/3214=0 DU MACHST HIER KEIN /0 FEHLERABFRAGE!
usw.
-
daumen schrieb:
Und warum sollte es was anderes tun?
0+1=1
0-3=-3
Und beim Rest stimmt das ergebnis!
0*93=0
0/3214=0 DU MACHST HIER KEIN /0 FEHLERABFRAGE!
usw.Na weil sein tmp statisch ist!
Du musst vor dem return das ergebnis auch shcon zu tmp dazuzählen!
case '+':
tmp+=x;
//...return tmp;
-
[quote="Mittelfinger"]
daumen schrieb:
Du musst vor dem return das ergebnis auch shcon zu tmp dazuzählen!
case '+':
tmp+=x;
//...return tmp;
Ach ja, stimmt! Voll vergessen! Danke!