C++ Probleme

Gast #2170799
Lesenswert?

Hi,
weiß zufällig jemand warum meine do-while schleife nicht funktioniert ?
und rechnen funktioniert auch nicht ... ich hab keine ahnung warum :-(
kann mir evtl jemand erklären warum das so ist und ggf einen 
lösungsvorschlag ?



1
#include <iostream>
2
#include <math.h>
3
using namespace std;
4

5

6
int main ()
7
{
8
  double Operant1;
9
  double Operant2;
10
  int MOp;
11
  char XX;
12

13
do
14
{
15
  cout <<"Bitte geben sie Operant 1 ein: " << endl;
16
  cin >> Operant1;
17
  cout <<"Bitte geben sie Operant 2 ein: " << endl;
18
  cin >> Operant2;
19
  cout <<" Folgende Operationen sind Möglich (+ - * / % !)" << endl;
20
  cin >> MOp;
21

22
  if (MOp == '+')
23
  {
24
    cout <<" Das Ergebnis ist: " << Operant1 + Operant2 << endl;
25
  }
26
  else if ( MOp == '-')
27
  {
28
    cout <<" Das Ergebnis ist: " << Operant1 - Operant2 << endl;
29
  }
30
  else if ( MOp == '*')
31
  {
32
    cout <<" Das Ergebnis ist: " << Operant1 * Operant2 << endl;
33
  }
34
  else if ( MOp == '/')
35
  {
36
    cout <<" Das Ergebnis ist: " << Operant1 / Operant2 << endl;
37
  }
38
  else if ( MOp == '%')
39
  {
40
    cout <<" Das Ergebnis ist: " << Operant1 * Operant2 << endl;
41
  }
42
  cout << "Erneute Rechnung? j/n" << endl;
43
  cin >> XX;
44
}while (XX == 'J' || XX == 'j');
45

46
  
47
  system ("PAUSE");
48

49

50
return 0;
51
}
Gast #2170862
Lesenswert?

Wie mein Vorposter schon sagte muss es z.B. char MOp heißen, da man in 
ein int keine Zeichen sondern nur Zahlen abspeichern kann.

math.h musst du für diese einfachen Operationen übrigens auch nicht 
inkludieren.

MfG
Gast #2170873
Lesenswert?

ghjk schrieb:
> Wie mein Vorposter schon sagte muss es z.B. char MOp heißen, da man in
> ein int keine Zeichen sondern nur Zahlen abspeichern kann.
ja so eng sieht es der compiler nicht - es geht.



Mach doch mal ein paar prints rein das man sieht was passiert, oder 
beschreibe mal was genau nicht geht.
Gast #2170900
Lesenswert?

Ok vielen Dank für die Hilfe


hätte da noch eine Frage...

Ist eine Modulo-Rechnung mit double überhaupt möglich? Wenn nicht kann 
ich sie ja rausnehmen (bei mir funktioniert es nicht, er beschwert sich 
wegen double... mit int funktioniert es aber das hilft mir nicht weiter)
Gast #2170905
Lesenswert?

Und das Wort heißt "Operand" und nicht "Operant" ;-). Sorry.

Und da der OP ein Anfänger zu sein scheint, noch ein Tipp: per 
Konvention beginnt man üblicherweise Variablennamen mit Kleinbuchstaben.

Für das obige Beispiel ist das natürlich egal, aber man sollte sich 
schlechten Stil gar nicht erst angewöhnen (no-pun-intended).
#2170941
Lesenswert?

Pyramid schrieb:

> Ok vielen Dank für die Tipps (auch für den OperanD Tipp^^):-)
> Ich kapier zwar nicht warum dann die Modulo Rechnung in der
> Aufgabenstellung steht aber seis drum.

Vielleicht um es nicht ganz so trivial werden zu lassen, statt dessen 
also der Einsatz deines Denkvermögens getestet wird? Denn wiewohl C/C++ 
kein Fliesskomma-Modulo zulassen: Du selbst kannst das sehr wohl 
programmieren. Nur eben bischen drumrum.
#2170989
Lesenswert?

A. K. schrieb:
> Pyramid schrieb:
>
>> Ok vielen Dank für die Tipps (auch für den OperanD Tipp^^):-)
>> Ich kapier zwar nicht warum dann die Modulo Rechnung in der
>> Aufgabenstellung steht aber seis drum.
>
> Vielleicht um es nicht ganz so trivial werden zu lassen, statt dessen
> also der Einsatz deines Denkvermögens getestet wird? Denn wiewohl C/C++
> kein Fliesskomma-Modulo zulassen: Du selbst kannst das sehr wohl
> programmieren. Nur eben bischen drumrum.

Oder einfach die Funktion fmod aus math.h benutzen :-)
#2171000
Lesenswert?

A. K. schrieb:
> Karl Heinz Buchegger schrieb:
>
>> Oder einfach die Funktion fmod aus math.h benutzen :-)
>
> Nu wollte ich ihm extra Gelegenheit geben, sein eigenes Hirn
> einzusetzen, weils doch erklärtermassen eine Hausaufgabe ist. Aber
> nein... ;-)

LOL
Hast natürlich recht. Es schadet nichts, wenn man nach Jahren noch 
einmal überlegt, wie man eigentlich den Rest einer Division berechnet. 
In der Grundschule (2. oder 3. Klasse) konnte man das ja auch.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren