C++

hallo, ich vorbereite mich für praktikum morgen und diese frage ist mir nicht ganz klar.

Schreiben Sie ein neues Programm, das Sie als neuen Studierenden begrüßt (Text beliebig)
• Erweitern Sie das Programm, dass die Ausgabe zehnmal gemacht wird.
• Nach jeder Ausgabe soll der Benutzer gefragt werden, ob er nochmals gegrüßt werden will.
• Multiplizieren Sie nach der Begrüßung zwei vom Benutzer eingegebene Zahlen (Datentyp: int). Bei welchen Eingaben erhalten Sie ein fehlerhaftes Ergebnis?
• Die Addition zweier Zahlen soll solange durchgeführt werden, bis eine der eingegebenen Zahlen Null ist.
• Experimentieren Sie mit andren Datentypen für die Zahlen.

also die erste und zweite aufgabe habe ich gemacht
#include
using namespace std;
int main()
{
int n;

for(n=0;n

Hi,

also die erste und zweite aufgabe habe ich gemacht

#include
using namespace std;
int main()
{
int n;

for(n=0;n
aber die aufgabe " Nach jeder Ausgabe soll der Benutzer
gefragt werden, ob er nochmals gegrüßt werden will." kapiere
ich net.
kann mir jemand hilfen

Das kannst du über if machen:

#include 

using namespace std;

int main()
{
 int n = 0;
 char aw = 's';


 cout \> aw;

 while(aw == 'j')
 {
 cout \> aw;
 n++;
 if (n == 10)
 {
 break;
 }
 }

 return 0;
}

Lg der einzigware

hallo Lg der einzigware,
vielen danke für dene hilfe,
konnen sie mir die letzte frage beantworten. Bei welchen Eingaben erhält man bei Multiplikation ein fehlerhaftes Ergebnis?

danke nochmals

Hallo Nabilf,

ein fehlerbehaftetes Ergebnis kommt heraus, wenn das Ergebnis der Multiplikation den Wertebereich des Datentyps übersteigt.

Laut Wikipedia umfasst ein Int meistens 32Bit, das heißt es umfasst einen Wertebereich von −2147483648 bis 2147483647.

Wenn du nun z.B. 50000 mit 50000 multiplizierst, würde die Berechnung (32Bit-int vorausgesetzt) −1794967296(DEZ) ergeben. Warum?

In Binär ist das Ergebnis 10010101000000101111100100000000(BIN). Bei einem vorzeichenbehafteten Datentyp befindet sich im MSB eine 1, das bedeutet, dass der Wert negativ ist. Den Betrag des Wertes erhält man durch Bildung des Zweierkomplements und das ist 01101010111111010000011100000000(BIN) bzw. eben 1794967296(DEZ).