Neu und schon brauch ich hilfe
-
Hallo liebe c++ gemeinde,
Ich habe vor kurzem mit dem Programmieren in c++ angefangen und bin froh wenn ihr mich unterstützt in meinen weg zum hobby/vllt berufsprogrammierer will um meinen bruder was zu beweisen einen einfachen taschen rechner schreiben.
hier mein fehler:warning C4700: Die nicht initialisierte lokale Variable "E2" wurde verwendet.
warning C4700: Die nicht initialisierte lokale Variable "E3" wurde verwendet.an den stellen:
cout << " Geben Sie den Rechenfaktot (1=+/2=-) ein\n"; O = 30; cin >> O; switch (O) { case '1' : F = E2; break; case '2' : F = E3; break; default : exit(0); break; }
-
E2 und E3 hast du nicht initialisiert.
Keine Ahnung, was das für Typen sind, aber da fehlt sowa:
int E1 = 0; int E2 = 0;
EDIT
Im übrigen sind das keine Fehlermeldungen, sondern Warnungen.
Du kannst das schon laufen lassen, allerdings hat E1 und E2 undefinierte Werte.
-
Reicht das nicht (und danke schonmal)
int A, F, B, E , E2, E3; E2 = A + B; E3 = A - B;
-
Und was haben A und B für Werte? Richtig: Weiss keine Sau.
D.h. E2 und E3 werden ebenso total verrückte Inhalte haben.
-
Hier mal den ganzen code:
// Prototyp Rechner 1.cpp: Hauptprojektdatei. // Taschenrechner Experiment // Erster Prototyp #include <stdafx.h> #include <cstdio> #include <cstdlib> #include <iostream> #include <math.h> using namespace std; int main(int,char nNumberofArgs, char* pszArgs[]) { int A, F, B, E , E2, E3; char O; cout << " Geben Sie die erste Zahl ein\n"; cin >> A; cout << " Geben Sie den Rechenfaktot (1=+/2=-) ein\n"; O = 30; cin >> O; switch (O) { case '1' : F = E2; break; case '2' : F = E3; break; default : exit(0); break; } cout << " Geben Sie die Zweite Zahl ein\n"; cin >> B; E = F; E2 = A + B; E3 = A - B; cout << "\nDas Ergebnis ist " << F << "\n"; system("PAUSE"); return 0; }
verbessert ihn ruhig
-
Da gibts nicht zu verbessern, da dieser (milde ausgedrückt) überhaupt keinen Sinn macht. Er lässt zwar erkennen, was am Ende rauskommen soll. Das (korrekte) Ergebnis vorweg zu nehmen halte ich persönlich jedoch für contraproduktiv.
Wenn du Programmieren lernen willst, dann kaufe dir ein Buch oder arbeite die nächsten Tage ein Online-Tutorial durch (die FAQ sollte hier weiter helfen).
Was die Warnungen angeht: Du verwendest die Variablen E1 und E2 (Zeilen 26 + 28), ohne dass diese zuvor mit einem Wert versehen wurden. Es wurde lediglich deklariert, dass diese überhaupt existieren (Zeile 14).
E = F (Zeile 37) macht keinen Sinn.
E1 = A + B sowie E2 = A - B machen keinen Sinn, da E1 und E2 eben keine (sinnvollen) Werte aufweisen.
Grüße... Heiko
Ps. Zeile 11 ist ebenfalls nicht korrekt, int main() reicht hier vollkommen aus.
-
buch hab ich schon "c++ für dummies" und das E=F is von einen versuch davor als überbleibsel übrich geblieben und jedesmal wenn ich int main() mache sagt er ich muss int,char drin haben (bei visual c++ 2008 und dev-cpp) ich guck das ich die letzten kapitel noch lese und mich an son tutorial noch halte probiere es dann zu einen späteren zeitpunkt nochmal würde mich dennoch freuen wenn einer den code (wenns nicht zuviel mühe macht) perfectioniert denn dadurch lernt man auch viel (vllt mit * & /)
Gruß Jens
-
#include <iostream> using namespace std; int main() { int operand1 = 0; cout << "Geben Sie die erste Zahl ein: "; cin >> operand1; char rechenart = 0; cout << "Geben Sie die Rechenart ein (+,-,*,/): "; cin >> rechenart; int operand2 = 0; cout << "Geben Sie die Zweite Zahl ein: "; cin >> operand2; int ergebnis = 0; switch(rechenart) { case '+': ergebnis = operand1 + operand2; break; case '-': ergebnis = operand1 - operand2; break; case '*': ergebnis = operand1 * operand2; break; case '/': if(operand2 == 0) cout << "Fehler: Division durch 0 ist nicht erlaubt" << endl; else ergebnis = operand1 / operand2; break; default: cout << "Rechenart wird nicht unterstützt" << endl; break; } cout << "Das Ergebnis ist " << ergebnis << endl; cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); cin.get(); return 0; }
-
Danke
-
musste noch einiges ändern aber ich hab jetzt vertanden was falsch war DANKE