Berechnung von Kreis und Viereck

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Berechnung von Kreis und Viereck

    Hallo, bin neu hier :D und habe ein Problem und zwar habe ich ein Programm geschrieben, mit dessen Hilfe man zwischen verschiedenen Berechnungen wählen kann... In diesem Fall zwischen Kreis und Viereck und deren Unterpunkte:

    -Kreis: Umfang, Fläche und Durchmesser
    leider stürzt hierbei (egal welches man auswählt) direkt das Programm (Codeblocks) ab, bzw es kommt die Meldung dass das Programm nicht mehr Funktioniert....

    -Viereck: Volumen, Grundfläche und Oberfläche
    hier gibt er mir bei der Oberfläche einen völlig komischen Wert aus..

    Quelltext folgt:

    #include <stdio.h>
    #include <stdlib.h>
    #include <stdbool.h>
    #include <conio.h>
    #include <math.h>

    void kreisberechnung();
    double kreisflaeche(double radius);
    double kreisumfang(double radius);
    double kreisdurchmesser(double radius);

    void vierecksberechnung();
    double vierecksvolumen(double laenge, double breite, double hoehe);
    double vierecksgrundflaeche(double laenge, double breite);
    double vierecksoberflaeche(double laenge, double breite, double hoehe);

    void bildschirmloeschen();

    main()
    {
    int auswahl1;
    bool ende = false;

    printf("-Flaechenberechnung-\n\n");
    printf("Bitte waehlen:\n");
    printf("1. Kreis\n2. Viereck \n3. Beenden\n");
    scanf("%d", &auswahl1);

    switch(auswahl1)
    {
    case 1:
    kreisberechnung();
    bildschirmloeschen();
    break;

    case 2:
    vierecksberechnung();
    break;

    case 3:
    printf("Das Programm wird beendet.");
    ende = true;
    break;
    }
    }

    void kreisberechnung()
    {
    double radius = 0;
    int auswahl2;

    printf("Bitte waehlen: \n");
    printf("1. Flaeche \n2. Umfang \n3. Durchmesser\n");
    scanf("%d", auswahl2);

    switch(auswahl2)
    {
    case 1:
    printf("Radius--> ");
    scanf("%lf", &radius);

    printf("Die Flaeche betraegt: %.2lf", kreisflaeche(radius));

    getch();

    break;

    case 2:
    printf("Radius--> ");
    scanf("%lf", &radius);

    printf("Der Umfang betraegt: %.2lf", kreisumfang(radius));

    getch();

    break;

    case 3:
    printf("Radius--> ");
    scanf("%lf", &radius);

    printf("Der Durchmesser betraegt: %.2lf", kreisdurchmesser(radius));

    getch();

    break;
    }
    }

    double kreisflaeche(double radius)
    {
    return 3.14159 * radius * radius;
    }

    double kreisumfang(double radius)
    {
    return 2 * 3.14159 * radius;
    }

    double kreisdurchmesser(double radius)
    {
    return 2 * radius;
    }

    void vierecksberechnung()
    {
    int auswahl2;
    double laenge, breite, hoehe;

    printf("Bitte waehlen:\n");
    printf("1. Volumen \n2. Grundflaeche \n3. Oberflaeche\n");
    scanf("%d", &auswahl2);

    switch(auswahl2)
    {
    case 1:
    printf("Laenge--> ");
    scanf("%lf", &laenge);

    printf("Breite--> ");
    scanf("%lf", &breite);

    printf("Hoehe--> ");
    scanf("%lf", &hoehe);

    printf("Volumen: %.2lf", vierecksvolumen(laenge, breite, hoehe));

    bildschirmloeschen();
    getch();

    break;

    case 2:
    printf("Laenge--> ");
    scanf("%lf", &laenge);

    printf("Breite--> ");
    scanf("%lf", &breite);

    printf("Grundflaeche: %.2lf", vierecksgrundflaeche(laenge, breite));

    bildschirmloeschen();
    break;

    case 3:
    printf("Laenge--> ");
    scanf("%lf", &laenge);

    printf("Breite--> ");
    scanf("%lf", &laenge);

    printf("Hoehe--> ");
    scanf("%lf", &hoehe);

    printf("Oberflaeche: %.2lf", vierecksoberflaeche(laenge, breite, hoehe));

    bildschirmloeschen();
    break;
    }
    }

    double vierecksvolumen(double laenge, double breite, double hoehe)
    {
    return laenge * breite * hoehe;
    }

    double vierecksgrundflaeche(double laenge, double breite)
    {
    return laenge * breite;
    }

    double vierecksoberflaeche(double laenge, double breite, double hoehe)
    {
    return 2 * laenge * breite + 2 * laenge * hoehe + 2 * breite * hoehe;
    }

    void bildschirmloeschen()
    {
    getch();
    system("cls");
    }

    wäre schön wenn ihr mir evtl helfen könntet. :)
  • So, mein lieber Debugger hat mir gesagt dass du nen fehlenden Typspezifizierer in Zeile 19 hast. Das wäre dann dein main. Ich schick dir deinen Code nochmal korrigiert zurück:

    C Source Code

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <stdbool.h>
    4. #include <conio.h>
    5. #include <math.h>
    6. void kreisberechnung();
    7. double kreisflaeche(double radius);
    8. double kreisumfang(double radius);
    9. double kreisdurchmesser(double radius);
    10. void vierecksberechnung();
    11. double vierecksvolumen(double laenge, double breite, double hoehe);
    12. double vierecksgrundflaeche(double laenge, double breite);
    13. double vierecksoberflaeche(double laenge, double breite, double hoehe);
    14. void bildschirmloeschen();
    15. void main()
    16. {
    17. int auswahl1;
    18. bool ende = false;
    19. printf("-Flaechenberechnung-\n\n");
    20. printf("Bitte waehlen:\n");
    21. printf("1. Kreis\n2. Viereck \n3. Beenden\n");
    22. scanf("%d", &auswahl1);
    23. switch (auswahl1)
    24. {
    25. case 1:
    26. kreisberechnung();
    27. bildschirmloeschen();
    28. break;
    29. case 2:
    30. vierecksberechnung();
    31. break;
    32. case 3:
    33. printf("Das Programm wird beendet.");
    34. ende = true;
    35. break;
    36. }
    37. }
    38. void kreisberechnung()
    39. {
    40. double radius = 0;
    41. int auswahl2;
    42. printf("Bitte waehlen: \n");
    43. printf("1. Flaeche \n2. Umfang \n3. Durchmesser\n");
    44. scanf("%d", auswahl2);
    45. switch (auswahl2)
    46. {
    47. case 1:
    48. printf("Radius--> ");
    49. scanf("%lf", &radius);
    50. printf("Die Flaeche betraegt: %.2lf", kreisflaeche(radius));
    51. getch();
    52. break;
    53. case 2:
    54. printf("Radius--> ");
    55. scanf("%lf", &radius);
    56. printf("Der Umfang betraegt: %.2lf", kreisumfang(radius));
    57. getch();
    58. break;
    59. case 3:
    60. printf("Radius--> ");
    61. scanf("%lf", &radius);
    62. printf("Der Durchmesser betraegt: %.2lf", kreisdurchmesser(radius));
    63. getch();
    64. break;
    65. }
    66. }
    67. double kreisflaeche(double radius)
    68. {
    69. return 3.14159 * radius * radius;
    70. }
    71. double kreisumfang(double radius)
    72. {
    73. return 2 * 3.14159 * radius;
    74. }
    75. double kreisdurchmesser(double radius)
    76. {
    77. return 2 * radius;
    78. }
    79. void vierecksberechnung()
    80. {
    81. int auswahl2;
    82. double laenge, breite, hoehe;
    83. printf("Bitte waehlen:\n");
    84. printf("1. Volumen \n2. Grundflaeche \n3. Oberflaeche\n");
    85. scanf("%d", &auswahl2);
    86. switch (auswahl2)
    87. {
    88. case 1:
    89. printf("Laenge--> ");
    90. scanf("%lf", &laenge);
    91. printf("Breite--> ");
    92. scanf("%lf", &breite);
    93. printf("Hoehe--> ");
    94. scanf("%lf", &hoehe);
    95. printf("Volumen: %.2lf", vierecksvolumen(laenge, breite, hoehe));
    96. bildschirmloeschen();
    97. getch();
    98. break;
    99. case 2:
    100. printf("Laenge--> ");
    101. scanf("%lf", &laenge);
    102. printf("Breite--> ");
    103. scanf("%lf", &breite);
    104. printf("Grundflaeche: %.2lf", vierecksgrundflaeche(laenge, breite));
    105. bildschirmloeschen();
    106. break;
    107. case 3:
    108. printf("Laenge--> ");
    109. scanf("%lf", &laenge);
    110. printf("Breite--> ");
    111. scanf("%lf", &laenge);
    112. printf("Hoehe--> ");
    113. scanf("%lf", &hoehe);
    114. printf("Oberflaeche: %.2lf", vierecksoberflaeche(laenge, breite, hoehe));
    115. bildschirmloeschen();
    116. break;
    117. }
    118. }
    119. double vierecksvolumen(double laenge, double breite, double hoehe)
    120. {
    121. return laenge * breite * hoehe;
    122. }
    123. double vierecksgrundflaeche(double laenge, double breite)
    124. {
    125. return laenge * breite;
    126. }
    127. double vierecksoberflaeche(double laenge, double breite, double hoehe)
    128. {
    129. return 2 * laenge * breite + 2 * laenge * hoehe + 2 * breite * hoehe;
    130. }
    131. void bildschirmloeschen()
    132. {
    133. getch();
    134. system("cls");
    135. }
    Display All
    So bitteschön. Und wie gesagt, Zeile 19 war dein Fehler
    Grüße, Power_Gamer122