Artox Geschrieben 20. März 2007 Geschrieben 20. März 2007 hy hallo erstmal mein Problem ist ich soll das Produkt zweier Zahlen als addition berechen so weit so gut kein prob #include<iostream> using namespace std; void main(void) { int zahlA; int zahlB; int proAdd=0; int i; cout<<"Bitte geben sie Die Erste Zahl ein: "; cin>>zahlA; cout<<endl<<"Bitte geben sie die zweite Zahl ein: "; cin>>zahlB; cout<<endl; for(i=0;i<zahlB;i++) proAdd=proAdd+zahlA; if(zahlB==0) proAdd=0; cout<<"das ergebniss ist : "<<proAdd; cout<<endl; } das ist net schlimm was mein problem ist wenn der zweiten zahl bei der eingabe ein minus voran gestellt ist dann kommt natürlich ein falsches ergebnis raus kann mir da jemand helfen ?? Zitieren
Hexagon Geschrieben 20. März 2007 Geschrieben 20. März 2007 Moin. Ich geb Dir mal einen kleinen Denkanstoß: Zahl * -1 = negative Zahl EDIT: die Abfrage if(zahlB==0) sollte eigentlich überflüssig sein, oder? Zitieren
Artox Geschrieben 20. März 2007 Autor Geschrieben 20. März 2007 o.k. das stimmt mit dem 0 ist überflüssig nun aber zum *(-1) das habe ich auch gemacht #include<iostream> using namespace std; void main(void) { int zahlA; int zahlB; int proAdd=0; int i; cout<<"Bitte geben sie Die Erste Zahl ein: "; cin>>zahlA; cout<<endl<<"Bitte geben sie die zweite Zahl ein: "; cin>>zahlB; cout<<endl; if(zahlB<0) zahlB=zahlB*(-1); for(i=0;i<zahlB;i++) proAdd=proAdd+zahlA; cout<<"das ergebniss ist : "<<proAdd; cout<<endl; } nun ist es so das er z.b. bei 3*-5 rechnet aber das ergebnis halt net stimmt da ja 3*-5 = -15 sind bzw was ist wenn 3 = -3 ist wenn beide minus sind ist das egal da sich ja da die vorzeichen eh auflösen ?? Zitieren
Hexagon Geschrieben 20. März 2007 Geschrieben 20. März 2007 Okay, nächster Denkanstoß: Könnte man dann nicht in einer z.B. bool-Variablen speichern ob die Zahl negativ war?Sagt die XOR irgendwas? Falls nötig könnte ich Dir auch mal einen Codeschnipsel geben. :e@sy EDIT: bzw was ist wenn 3 = -3 ist Öhm...da kann ich Dir grad nicht folgen. Zitieren
Artox Geschrieben 20. März 2007 Autor Geschrieben 20. März 2007 also habe das problem jetzt so gelöst #include<iostream> using namespace std; void main(void) { int zahlA; int zahlB; int proAdd=0; int i; cout<<"Bitte geben sie Die Erste Zahl ein: "; cin>>zahlA; cout<<endl<<"Bitte geben sie die zweite Zahl ein: "; cin>>zahlB; cout<<endl; if(zahlB<0) zahlB=zahlB*(-1),zahlA=zahlA*(-1); if(zahlA<0,zahlB<0) zahlA=zahlA*(-1); for(i=0;i<zahlB;i++) proAdd=proAdd+zahlA; cout<<"das ergebniss ist : "<<proAdd; cout<<endl; } aber über deinen vorschlag wäre ich auch sehr erfreut will ja was lernen danke Zitieren
Hexagon Geschrieben 20. März 2007 Geschrieben 20. März 2007 #include<iostream> using namespace std; void main(void) { int zahlA; int zahlB; int proAdd=0; bool ZahlANegativ = false; bool ZahlBNegativ = false; cout<<"Bitte geben sie Die Erste Zahl ein: "; cin>>zahlA; cout<<endl<<"Bitte geben sie die zweite Zahl ein: "; cin>>zahlB; cout<<endl; if (zahlA < 0) { ZahlANegativ = true; zahlA *= -1; } if (zahlB < 0) { ZahlBNegativ = true; zahlB *= -1; } for (int i = 0; i < zahlB; i++) proAdd += zahlA; if (ZahlANegativ ^ ZahlBNegativ) proAdd *= -1; cout<<"das ergebniss ist : "<<proAdd; cout<<endl; } Büdde schön... Alle Angaben wie immer ohne Gewähr, da nur im Gehirn entworfen... Zitieren
Artox Geschrieben 20. März 2007 Autor Geschrieben 20. März 2007 Danke schön werde mir das mal genauer ansehen und auseinander flücken muss nur jetzt die nächste aufgabe lösen naja da ist das anders rum jetzt heist es: der ganzahligen quotienten a/b zweier zahlen a und b und der entstehende rest soll über subtaktion berechnet werden Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.