N
Dein Programm ist voll von Logikfehlern, mal abgesehen vom schlechten Stil und dass es überhaupt nicht funktioniert. Du erwartest doch nicht, dass hier jemand deinen Code neu schreibt? Ich war trotzdem so nett, einige Dinge zu kommentieren, vielleicht fällt dir selber noch etwas auf
programmnoob schrieb:
//---------------------------------------------------------------------------
#pragma hdrstop
#include <iostream.h> // iostream.h ist veraltet. Benutze iostream
//---------------------------------------------------------------------------
#pragma argsused // bist du sicher, dass du diese Pragmas brauchst? Kennst du deren Auswirkungen überhaupt?
int main()
{
double zahl1, zahl2, ergebnis;
char coperator, auswahl='j';
while (auswahl=='j' || auswahl=='J') // sag mir einen Fall, in dem auswahl != 'j' ist.
{
cout<<"--------Taschenrechner-------\n";
cout<<"-----------------------------\n";
cout<<"zahl eingeben \n";
cin>>zahl1;
cout<<"operator eingeben \n";
cin>>coperator;
cout<<"zahl eingeben \n";
cin>>zahl2;
//--Vergleich der Operatoren mit Rechnung---------
// Die while-Schleife wird so lange ausgeführt, wie coperator keines der vier Zeichen ist.
while (coperator !='/' || coperator != '*' || coperator != '+'||coperator !='-') {
switch(coperator)
{
case '*': ergebnis=zahl1*zahl2; cout<<zahl1<<" "<<coperator<<" "<<zahl2<<" = " << ergebnis<<endl<<endl;
break;
case '/': ergebnis=zahl1/zahl2; cout<<zahl1<<" "<<coperator<<" "<<zahl2<<" = " << ergebnis<<endl<<endl;
break;
case '+': ergebnis=zahl1+zahl2; cout<<zahl1<<" "<<coperator<<" "<<zahl2<<" = " << ergebnis<<endl<<endl;
break;
case '-': ergebnis=zahl1-zahl2; cout<<zahl1<<" "<<coperator<<" "<<zahl2<<" = " << ergebnis<<endl<<endl;
break;
default: cout<<"neues rechenzeichen eingeben\n";cin>>coperator;
}
}
cout<<"nochmal";
cin>>auswahl;
system ("Pause");
}
getchar(); // was soll den das? Du hast ja bereits system("Pause").
return 0; // überflüssig, du befindest dich am Ende von main()
}
Zum schlechten Stil noch: Benutze in Zukunft [ cpp ]-Tags. Die Strukturierung deines Codes ist zudem grauenhaft (Einrückung, Zeilenabstände, Blöcke, etc.). Die cout-Anweisungen im switch-Block könntest du zu einer zusammenfassen. Benutze using namespace std; oder schreibe std:: vor alle cout und cin, sonst wird das nicht gehen.
BTW: Dein Name spricht für sich. Es bringt wohl am meisten, wenn du zuerst ordentlich C++ lernst und dann noch einmal neu mit deinem Programm beginnst. So kommst du nämlich nicht weit.