Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » do & while - wie?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.09.2005, 17:12 Uhr
~RhymeKamikaze
Gast


Moin!

Wir haben alle ein Prob in der Schule...
Wir sollen ein Prog proggen mit einer
"do - while" schleife die dann auf "j" für wiederholen
und "n" für beenden reagieren soll... aber
keiner bekommt es hin... der Lehrer hat
auch keine Lösung und wundert sich auch
was los ist...

Was ist das für ein Lehrer?! Der soll
uns was beibringen... toll...

Könnt ihr mir helfen? Wär sehr digg!

Hier ist der Code... Ich hab das gefühl der ist sehr...


C++:
{
float MwSt;
float Bruttobetrag, Nettobetrag;
char Wiederholen='j';
char Eingabe;
do
  {
  clrscr();
  printf("Bitte geben Sie den Nettobetrag in Euro ein: ");
  scanf("%f",&Nettobetrag);
  fflush(stdin);
  printf("Bitte geben Sie die gewünschte Mehrwertsteuer ein: ");
  scanf("%f",&MwSt);
  fflush(stdin);
  Bruttobetrag = Nettobetrag * (1.0 + MwSt / 100);
  printf("\n\nDer Bruttobetrag von %.2f Euro ist %.2f Euro", Nettobetrag, Bruttobetrag);
  printf("\n\nWiederholen? (j/n)");
  scanf("%f", &Wiederholen);
  getchar();
  }
while (Wiederholen = Eingabe);
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.09.2005, 17:33 Uhr
imhotep
followed the white rabbit



C++:
{
float MwSt;
float Bruttobetrag, Nettobetrag;
char Eingabe;
do
  {
/* ... */
  printf("\n\nWiederholen? (j/n) \n");
  Eingabe = getchar();
  getchar();
  }
while (Eingabe != 'j'); // Vergleiche ob Eingabe ungleich j
}

was auch ginge

C++:
do {
/* ... */
} while ( ! ( Eingabe == 'j' )); negiere Ergebnis vom Vergleich ob Eingaben gleich j


negieren ist das Gegenteil von einen Wahrheitswert (bool) bilden. !true == false und !false == true

Eine do-while-Schleife wird fort gesetzt, wenn die Bedingung nach while wahr ist. "Mach Anweisungen solange Bedingung wahr ist"


C++:
do {
/* ... */
} while (true) //Endlosschleife
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.09.2005, 17:57 Uhr
~RhymeKamikaze
Gast


Dankeschön! Das ist klasse!
Nur soll es ja bei der Eingabe
von "n" beenden und nicht bei "j",
hab ich geändert!

Eine Sache wär da noch... Ich kann
jetzt aber auch "h, g, w, e", also andere
Buchstaben und so weiter eingeben und
es sollte ja nur mit "j" und "n" gehen, wär
ja logisch... geht das oder muss man
das dann anders machen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.09.2005, 18:08 Uhr
imhotep
followed the white rabbit



C++:
bool weiter;
do
  {
/* ... */
  printf("\n\nWiederholen? (j/n) \n");
  weiter = false;
  do {
    Eingabe = getchar();
    getchar();
    if ((Eingabe == 'j') || (Eingabe == 'n')) { //Eingabe soll j oder n sein
      weiter = true;
     } else {
      printf("Bitte j oder n eingeben!\nWiederholen? (j/n) \n");
    }
  } while (ende)
while (Eingabe != 'j'); // Vergleiche ob Eingabe ungleich j
}


Bei C gibt es kein bool da müsstest du int oder char nehmen und false wär dann 0 und true 1

Dieser Post wurde am 07.09.2005 um 18:10 Uhr von imhotep editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.09.2005, 21:01 Uhr
RhymeKamikaze



Danke! Aber irgendwie funktioniert der letzte Code nicht...

Vielleicht liegt das daran, dass ich "Borland C++ Builder 6" hab
aber eigentlich ist das ja egal oder?

MfG
--
#include <stdio.h>
void main()
{ printf ("Hello World");
getchar();
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.09.2005, 21:17 Uhr
imhotep
followed the white rabbit



C++:
  bool weiter;
  char Eingabe;
  do {
/* ... */
    printf("\n\nWiederholen? (j/n) \n");
    weiter = true;
    do {
      Eingabe = getchar();
      getchar();
      if ((Eingabe == 'j') || (Eingabe == 'n')) { //Eingabe soll j oder n sein
        weiter = false;
      } else {
        printf("Bitte j oder n eingeben!\nWiederholen? (j/n) \n");
      }
    } while (weiter);
  } while (Eingabe != 'n'); // Vergleiche ob Eingabe ungleich j


Sorry hab da bissel Mist gebaut
Hab das mal getestet, jetzt sollte es gehen. Bei mir klappts gut.

Borland hat zwar eigene Klassen, aber das sind Standardbefehle.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: