Ich hab mein Rechenprogramm mal ein bisschen übersichtlicher gestaltet! Was könnte ich noch verbessern?
Hier der alte Code mit vielen goto's
Code: Alles auswählen
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define quadrat(a) (a)*(a)
int main ()
{
int rechenart, summand1, summand2, minuend, subtrahend, faktor1, faktor2, zahl, flaeche1, flaeche2, laenge1, laenge2, laenge3;
double dividend, divisor, eingabe, wurzel, prozent, prozentsatz;
ende:
rechenart = 100;
while (rechenart > 9)
{
printf ("\nDer Taschenrechner\n0 = Beenden\n\nWaehlen Sie die Rechenart aus:\n1 = Plus\n2 = Minus\n3 = Mal\n4 = Geteilt\n5 = Quadrieren\n6 = Quadratwurzel ziehen\n7 = Prozentwert berechnen\n8 = Flaecheninhalt berechnen\n9 = Rauminhalt berechnen\n");
scanf ("%d", &rechenart); //Auswählen der Rechenart
}
if (rechenart == 0) goto endeende;
if (rechenart == 1) goto plus;
if (rechenart == 2) goto minus;
if (rechenart == 3) goto mal;
if (rechenart == 4) goto geteilt;
if (rechenart == 5) goto quadrieren;
if (rechenart == 6) goto wurzel;
if (rechenart == 7) goto prozent;
if (rechenart == 8) goto inhalt;
if (rechenart == 9) goto inhalt2;
plus:
{
printf ("Summanden eingeben: "); //Plus
scanf ("%d %d", &summand1, &summand2);
printf ("%d + %d = %d\n", summand1, summand2, summand1+summand2);
goto ende;
}
minus:
{
printf ("Minuend und Subtrahend eingeben: "); //Minus
scanf ("%d %d", &minuend, &subtrahend);
printf ("%d - %d = %d\n", minuend, subtrahend, minuend-subtrahend);
goto ende;
}
mal:
{
printf ("Faktoren eingeben: "); //Mal
scanf ("%d %d", &faktor1, &faktor2);
printf ("%d * %d = %d\n", faktor1, faktor2, faktor1 * faktor2);
goto ende;
}
geteilt:
{
printf ("Dividend und Divisor eingeben: "); //Geteilt
scanf ("%lf %lf", ÷nd, &divisor);
printf ("%.2f / %.2f = %f\n", dividend, divisor, dividend / divisor);
goto ende;
}
quadrieren:
{
printf ("Geben Sie die Zahl ein die quadriert werden soll: ");
scanf ("%d", &zahl); //Eingabe der Zahl
printf ("Ergebnis: %d", quadrat(zahl)); //Rechenvorgang + Ausgabe des Ergebnisses
goto ende;
}
wurzel:
{
printf ("Geben Sie die Zahl ein, deren Wurzel gezogen werden soll: ");
scanf ("%lf", &eingabe);
wurzel = sqrt (eingabe);
printf ("Ergebnis: %f\n", wurzel);
goto ende;
}
prozent:
{
printf ("Geben Sie den Grundwert und den Prozentsatz ein: ");
scanf ("%lf %lf", &prozent, &prozentsatz);
printf ("Prozentwert: %f\n", prozent / 100 * prozentsatz);
goto ende;
}
inhalt: //Flächeninhalt
{
printf ("Geben Sie die Seitenlaengen an: ");
scanf ("%d %d", &flaeche1, &flaeche2);
printf ("Flaecheninhalt: %d", flaeche1 * flaeche2);
goto ende;
}
inhalt2: //Rauminhalt
{
printf ("Geben Sie Laenge Breite Hoehe an: ");
scanf("%d %d %d", &laenge1, &laenge2, &laenge3);
printf ("Rauminhalt: %d", laenge1 * laenge2 * laenge3);
goto ende;
}
getch();
endeende:
return 0;
}
Code: Alles auswählen
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
int i, rechenart, summand1, summand2, minuend, subtrahend, faktor1, faktor2, quadrat, laenge1, laenge2, laenge, breite, hoehe;
double dividend, divisor, ausgang, wurzel, grundwert, prozentsatz;
printf ("--------------------------------------Fuss--------------------------------------");
while (i != 0)
{
rechenart = 10000;
while (rechenart > 9)
{
printf ("\n\nDer Taschenrechner\n0 = Beenden\n\nWaehlen Sie die Rechenart aus:\n1 = Plus\n2 = Minus\n3 = Mal\n4 = Geteilt\n5 = Quadrieren\n6 = Quadratwurzel ziehen\n7 = Prozentwert berechnen\n8 = Flaecheninhalt berechnen\n9 = Rauminhalt berechnen\n");
scanf ("%d", &rechenart); //Auswählen der Rechenart
}
switch (rechenart)
{
case 0:
{
printf ("--------------------------------------Fuss--------------------------------------");
i = 0;
getch();
break;
}
case 1:
{
printf ("Summanden eingeben: "); //Plus
scanf ("%d %d", &summand1, &summand2);
printf ("%d + %d = %d\n", summand1, summand2, summand1 + summand2);
getch();
break;
}
case 2:
{
printf ("Minuend und Subtrahend eingeben: "); //Minus
scanf ("%d %d", &minuend, &subtrahend);
printf ("%d - %d = %d\n", minuend, subtrahend, minuend - subtrahend);
getch();
break;
}
case 3:
{
printf ("Faktoren eingeben: "); //Mal
scanf ("%d %d", &faktor1, &faktor2);
printf ("%d * %d = %d\n", faktor1, faktor2, faktor1 * faktor2);
getch();
break;
}
case 4:
{
printf ("Dividend und Divisor eingeben: "); //Geteilt
scanf ("%lf %lf", ÷nd, &divisor);
printf ("%.2f / %.2f = %f\n", dividend, divisor, dividend / divisor);
getch();
break;
}
case 5:
{
printf ("Geben Sie die Zahl ein die quadriert werden soll: ");
scanf ("%d", &quadrat); //Eingabe der Zahl
printf ("Ergebnis: %d", quadrat * quadrat); //Rechenvorgang + Ausgabe des Ergebnisses
getch();
break;
}
case 6:
{
printf ("Geben Sie die Zahl ein, deren Wurzel gezogen werden soll: ");
scanf ("%lf", &ausgang);
wurzel = sqrt (ausgang);
printf ("Ergebnis: %f\n", wurzel);
getch();
break;
}
case 7:
{
printf ("Geben Sie den Grundwert und den Prozentsatz ein: ");
scanf ("%lf %lf", &grundwert, &prozentsatz);
printf ("Prozentwert: %f\n", grundwert / 100 * prozentsatz);
getch();
break;
}
case 8:
{
printf ("Geben Sie die Seitenlaengen an: ");
scanf ("%d %d", &laenge1, &laenge2);
printf ("Flaecheninhalt: %d", laenge1 * laenge2);
getch();
break;
}
case 9:
{
printf ("Geben Sie Laenge Breite Hoehe an: ");
scanf("%d %d %d", &laenge, &breite, &hoehe);
printf ("Rauminhalt: %d", laenge * breite * hoehe);
getch();
break;
}
}
}
return 0;
}
Ob das neue Prog. mit Vista funktioniert weiß ich nicht.
MfG +Fuss+