Fehlerhaftes Programm komisch.c

Dieses Programm widerspricht sämtlichen Regeln der guten Programmierung und zudem ist es fehlerhaft. Finden und korrigieren Sie die Fehler, damit das Programm läuft. Dazu müssen Sie es natürlich erst einmal in eine ordentliche und lesbare Form bringen.

Plain Text icon — Plain Text, 3 KB (3955 bytes)

File contents

#include<stdio.h>
#include<math.h>

#define pi 3.14159

int main()
{
int m = 0, z, f = 1, z1 = 0, z2 = 0, x = 0, b, c;
int a = b = c = 0; char re = ' '; double ra; int i = 0, temp1;

	do
	{
    printf("\n\nKreisberechnung: %d\n", 1);
        printf("Fakultaet: %d\n", 2);
            printf("Quersumme: %d\n", 3);
                printf("Einfacher Taschenrechner: %d\n", 4);
                    printf("Beenden: %d\n", 0);
                        printf("\nBitte wählen Sie eine Funktion: \n");
        scanf(" %i", &m);
    fflush(stdin);

                switch(m)
		{
			case 1:
            printf("Geben Sie einen Radius ein: ");
            scanf(" %lf", &ra);
            fflush(stdin);
                if (ra > 0.0)
                {
                    // Berechnung des Durchmessers.
                        printf("Durchmesser: %.2f\n", ra * 2);
                    // Berechnung des Flaecheninhalts.
    printf("Flaecheninhalt: %.2f\n", pi * ra * ra);
                } else
            {
                    printf ("Fehler! In diesem Universum kann ein Radius nicht <= 0 sein!");
                }

                break;
			case 2:
                                printf("Geben Sie eine natuerliche Zahl ein: ");
                        scanf(" %i", &x);
                fflush(stdin);
                f = 1;
                if (x >= 0)
                {
                    if (x = 0)
                    {
                        f = 1;
                            }
                    else
                    {
                        for (; i < x - 1;)
                        {
                            f = f + f * i;i = i + 1;
                        }
                    }
                    printf ("%i! = %i", x, f);
                }
                else{printf ("Fehler! Die Zahl darf nicht kleiner als 0 sein!");}break;
            case 3:
				printf("Geben Sie eine natuerliche Zahl ein: ");
    scanf(" %i", &x);
    fflush(stdin);
    z = x;
                z2 = 0;
                if (x > 0)
    {
                    do
                {
                        z1 = z % 10;z2 = z2 + z1;z = z / 10;
                } while (z > 1);

                    printf("\n\nDie Quersumme der Zahl %i lautet: %i\n", x, z2);
                }
                else
{
                printf("FEHLER! Bitte geben Sie eine natuerliche Zahl ein!");
    }

    break;
            case 4:
                printf("Geben Sie eine Zahl ein: ");
                        scanf(" %i", &a);
                            printf("Geben Sie eine zweite Zahl ein: ");
                                scanf(" %i", &b);
                                    printf("Bitte geben Sie ein Rechenzeichen ein (+, -, *, /)");
				scanf(" %c", &ra);

				switch(re)
				{
        case '+':
            c = a + b;
            printf("%i %c %i = %i", a, re, b, c);
            break;

                    case '-':
                            c = a - b;
                            printf("%i %c %i = %i", a, re, b, c);
                        break;

				case '*':
        c = a * b;
                    printf("%i %c %i = %i", a, re, b, c);
                    break;

				case '/':
				    if (a != 0)
                    {
                    c = a / b;
                    printf("%i %c %i = %i", a, re, b, c);}
                    else
{
                            printf("FEHLER! In diesem Universum ist Division durch 0 nicht erlaubt!");
                    }
                    break;

                            default:
                                printf("FEHLER! Geben Sie bitte in gueltiges Rechenzeichen ein!");
                    }
                        case 0:
                    break;
                default:
				printf("FEHLER! Bitte waehlen Sie eine gueltige Funktion!");
		}
                } while(m != 0);

	return 0;
}