Zum Inhalt springen

Endlosschleifen


German Hero

Empfohlene Beiträge

Ich hab mir nen kleinen Taschenrechner erstellt, und hab hier nen Problem mit ner Endlosschleife. Vielleicht kann mir einer sagen wo mein Denkfehler liegt.

/* Kleiner Taschenrechner, der die Grundrechenarten beherscht */

/* erstellt von Buschi am 2.Juli 2001 */

#include <stdio.h>

int main()

{

char weiter;

short rechenart;

float a, b, erg;

printf("\nWollen Sie eine neue Aufgabe starten ? j,n : ");

scanf("%c",&weiter);

while (weiter =='j')

printf("\nAddieren= 1, Substrahieren= 2, Dividieren= 3, Multiplizieren= 4\n");

printf("\nBitte waehlen Sie eine Rechenart : ");

scanf("%d",&rechenart);

if (rechenart <=0 || rechenart >=5)

{

printf("\nFalsche Eingabe\n\a");

return 0;

}

else printf("\nBitte geben Sie die 1. Zahl ein :");

scanf("%g",&a);

printf("\nBitte geben Sie die 2. Zahl ein :");

scanf("%g",&B);

if (rechenart==1)

{

printf("\nSie haben die Addition gewaehlt\n");

erg=a+b;

printf("\nDas Ergebniss lautet : %g\n\n",erg);

}

else if (rechenart==2)

{

printf("\nSie haben die Substraktion gewaehlt\n");

erg=a-b;

printf("\nDas Ergebniss lautet : %g\n\n",erg);

}

else if (rechenart==3)

{

printf("\nSie haben die Division gewaehlt\n");

erg=a/b;

printf("\nDas Ergebniss lautet : %g\n\n",erg);

}

else if (rechenart==4)

{

printf("\nSie haben die Multiplikation gewaehlt\n");

erg=a*b;

printf("\nDas Ergebniss lautet : %g\n\n",erg);

}

return 0;

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Na ja...Du setzt die Variable weiter auf "j", gehst in eine schleife while weiter="j" und gibst dem Benutzer in der Scleife keine Möglichkeit weiter auf was anderes zu setzen.

Das muß etwa so aussehen:

weiter=='j'

while (weiter =='j')

printf("\nWollen Sie eine neue Aufgabe starten ? j,n : ");

scanf("%c",&weiter);

....

Link zu diesem Kommentar
Auf anderen Seiten teilen

So, habs jetzt mal so gemacht, ist aber nicht das Ergebnis das ich haben wollte. Hier nochmal in abgeänderter Form:

/* Kleiner Taschenrechner, der die Grundrechenarten beherscht */

/* erstellt von Buschi am 2.Juli 2001 */

#include <stdio.h>

int main()

{

char weiter;

short rechenart;

float a, b, erg;

weiter='j';

while (weiter =='j')

{ /*Beginn der Whileschleife*/

printf("\nWollen Sie eine neue Aufgabe starten ? j,n : ");

scanf("%c",&weiter);

printf("\nAddieren= 1, Substrahieren= 2, Dividieren= 3, Multiplizieren= 4\n");

printf("\nBitte waehlen Sie eine Rechenart : ");

scanf("%d",&rechenart);

if (rechenart <=0 || rechenart >=5)

{

printf("\nFalsche Eingabe\n\a");

return 0;

}

else printf("\nBitte geben Sie die 1. Zahl ein :");

scanf("%g",&a);

printf("\nBitte geben Sie die 2. Zahl ein :");

scanf("%g",&B);

if (rechenart==1)

{

printf("\nSie haben die Addition gewaehlt\n");

erg=a+b;

printf("\nDas Ergebniss lautet : %g\n\n",erg);

}

else if (rechenart==2)

{

printf("\nSie haben die Substraktion gewaehlt\n");

erg=a-b;

printf("\nDas Ergebniss lautet : %g\n\n",erg);

}

else if (rechenart==3)

{

printf("\nSie haben die Division gewaehlt\n");

erg=a/b;

printf("\nDas Ergebniss lautet : %g\n\n",erg);

}

else if (rechenart==4)

{

printf("\nSie haben die Multiplikation gewaehlt\n");

erg=a*b;

printf("\nDas Ergebniss lautet : %g\n\n",erg);

}

} /*Ende der Whileschleife*/

return 0;

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich würde die abfrage nach einer weitern aufgabe an das ende der schleife setzen.

Beispiel:

do

{

/* Schleifenkörper */

printf ( "weiter aufgabe [J/N] ? " );

scanf ( "%c", &weiter );

} while ( weiter == 'j' || weiter == 'J' );

ich hoffe das dir das ein wenig weiterhelfen könnte. das beispiel hat außerdem noch den vorteil, das der benutzer mit großen und kleinem j antworten kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...