#1 4. Januar 2006 Hi Ich habe ein Problem bei C++ ... ich habe gestern angefangen C++ zu lernen und aus diesem Grunde mehere Tutorials gemacht ... unter anderem auch ein Programm welches eine Addition durchführt ! Daraus hab ich dann auch eine Division, Subtraktion und Multiplikation gemacht ... jetzt wollte ich aber antatt 4 Programme zu haben einfach 1 "Taschenrechner" schreiben der alle 4 funktionen hat ... gesagt getan ... aber es funtioniert nicht und ich finde den Fahler nicht ... Ich hoffe jemand kann mir da helfen ! Code: #include <iostream.h> using namespace std; int main() { int a; int b; int c; int Auswahl; cout<<"|--------------------|"<<endl; cout<<"|-> Taschenrechner <-|"<<endl; cout<<"|--------------------|"<<endl; cout<<"| 1: Addition |"<<endl; cout<<"| 2: Subtraktion |"<<endl; cout<<"| 3: Multiplikation |"<<endl; cout<<"| 4: Division |"<<endl; cout<<"|--------------------|"<<endl; cout<<"| Bitte waehlen Sie! |"<<endl; cout<<"|--------------------|"<<endl; cin>>Auswahl; cout<<"|--------------------|"<<endl; cout<<"| Zahl 1 eingeben! |"<<endl; cout<<"|--------------------|"<<endl; cin>>a; cout<<"|--------------------|"<<endl; cout<<"| Zahl 2 eingeben! |"<<endl; cout<<"|--------------------|"<<endl; cin>>b; cout<<"|--------------------|"<<endl; cout<<" Das Ergebnis ist "<<c<<endl; cout<<"|--------------------|"<<endl; cout<<"|Programmiert by eveR|"<<endl; cout<<"|--------------------|"<<endl; } void main(Auswahl); { float Auswahl; const float Addition=1; const float Subtraktion=2; const float Multiplikation=3; const float Division=4; if(Auswahl==Addition) c=a+b; else cout<<"Error (Zeile 45)"<<endl; if(Auswahl==Subtraktion) c=a-b; else cout<<"Error (Zeile 49)"<<endl; if(Auswahl==Multiplikation) c=a*b; else cout<<"Error (Zeile 53)"<<endl; if(Auswahl==Division) c=a/b; else cout<<"Error Zeile 57)"<<endl; } system("pause"); return true; }; Das war der Quellcode ! Danke schonmal im Vorraus ! Gruß ra!d + Multi-Zitat Zitieren
#2 4. Januar 2006 Hab deinen Source ma umgeschrieben Dürfte alles funktionieren.. Code: #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int auswahl; char janein; do { system("cls"); cout<<"###########################"<<endl; cout<<"---------------------------"<<endl; cout<<"## Programmiert von eveR ##"<<endl; cout<<"---------------------------"<<endl; cout<<"###### Taschenrechner #######"<<endl; cout<<"---------------------------"<<endl; cout<<"### Bitte wählen sie... ###"<<endl; cout<<"---------------------------"<<endl; cout<<"###########################"<<endl; cout<<"---------------------------"<<endl; cout<<"1: Addition"<<endl; cout<<"2: Subtraktion"<<endl; cout<<"3: Multiplikation"<<endl; cout<<"4: Division"<<endl; cout<<"---------------------------"<<endl; cout<<"###########################"<<endl; cout<<"---------------------------"<<endl; cout<<"###########################"<<endl; cin >> auswahl; switch (auswahl) { case 1: { int sum1, sum2; cout << "1. Summand: "; cin >> sum1; cout << "2. Summmand: "; cin >> sum2; cout << "Das Ergebnis ist " << sum1+sum2 << ".\n"; break; } case 2: { int sub1, sub2; cout << "Minuend: "; cin >> sub1; cout << "Subtrahent: "; cin >> sub2; cout << "Das Ergebnis ist " << sub1-sub2 << ".\n"; break; } case 3: { int faktor1, faktor2; cout << "1. Faktor: "; cin >> faktor1; cout << "2. Faktor: "; cin >> faktor2; cout << "Das Ergebnis ist " << faktor1*faktor2 << ".\n"; break; } case 4: { int div1, div2; cout << "Dividend: "; cin >> div1; cout << "Divisor: "; cin >> div2; cout << "Das Ergebnis ist " << div1/div2 << ".\n"; break; } } cout << "Noch eine Berechnung? (1 = ja/0 = nein): "; cin >> janein; } while (janein == 1); return EXIT_SUCCESS; } hab grad gesehen, da stimmt irgendwas nich + Multi-Zitat Zitieren
#3 4. Januar 2006 danke ! ich gucke gleich mal obs funzt aber könntest du mir das auch mal erklären ?? ich will ja nicht dumm sterben ^^ thx ra!d Ja da stimmt auch was nicht ! es muss heißen Code: } while (janein == 0); return EXIT_SUCCESS; } ^^ + Multi-Zitat Zitieren
#4 4. Januar 2006 kuggst du hier Code: fflush(stdin); cin >> janein; } while (janein != 0); fflush(stdin) führt dazu, um den TastaturPuffer zu löschen, so dass nicht ausversehen ein \n in janein steht. Außerdem hab ich janein zu ner integer variable gemacht und bau doch beim dividieren noch ne abfrage ein, ob der divisor 0 ist gruß hamml + Multi-Zitat Zitieren
#7 4. Januar 2006 man kanns ja probieren, aber dann bekommt man lustige speicherverletzungen + Multi-Zitat Zitieren
#8 5. Januar 2006 ok das überzeugt mich ... wie soll diese abfrage denn aussehen ?? + Multi-Zitat Zitieren
#9 5. Januar 2006 case 4: { int div1, div2; cout << "Dividend: "; cin >> div1; cout << "Divisor: "; cin >> div2; if(div2 == 0) { cout << "Division durch 0 nicht Definiert" << endl; break; } cout << "Das Ergebnis ist " << div1/div2 << ".\n"; break; } endl bezweckt dass gleiche wie '\n' + Multi-Zitat Zitieren
#10 5. Januar 2006 ok da hätte man echt selber drauf kommen können ... trotzdem danke ! gruß ra!d + Multi-Zitat Zitieren