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 ??
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?
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 ??
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.
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
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...
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden