C Programs | IT Developer
IT Developer

C Programs



Share with a Friend

C Program: Complete 2D + 3D Geometry Calculator

Introduction

So far, we created a toolkit for 2D shapes (Rectangle, Circle, Triangle, etc.). Now, we’ll extend it to 3D shapes for calculating Surface Area and Volume.

2D Shapes Supported

  1. Rectangle (Area, Perimeter)
  2. Circle (Area, Circumference)
  3. Square (Area, Perimeter)
  4. Triangle (Area, Perimeter)
  5. Trapezium (Area)
  6. Parallelogram (Area, Perimeter)
  7. Rhombus (Area, Perimeter)
  8. Ellipse (Area, Approx. Perimeter)
  9. Regular Polygon (Area, Perimeter)

3D Shapes Supported

  1. Cube (Surface Area, Volume)
  2. Cuboid (Surface Area, Volume)
  3. Sphere (Surface Area, Volume)
  4. Cylinder (Surface Area, Volume)
  5. Cone (Surface Area, Volume)

 

C Program: Complete 2D + 3D Geometry Calculator

C

#include <stdio.h>

#include <math.h>

#define PI 3.14159   // Constant for π

 

int main() {

    int choice, n;

    float length, width, radius, side, base1, base2, height;

    float a, b, c, s;

    float major_axis, minor_axis;

    float area, perimeter, circumference, surface_area, volume;

 

    // Display Menu

    printf("=== Geometry Calculator ===\n");

    printf("--- 2D Shapes ---\n");

    printf("1. Rectangle (Area & Perimeter)\n");

    printf("2. Circle (Area & Circumference)\n");

    printf("3. Square (Area & Perimeter)\n");

    printf("4. Triangle (Area & Perimeter)\n");

    printf("5. Trapezium (Area)\n");

    printf("6. Parallelogram (Area & Perimeter)\n");

    printf("7. Rhombus (Area & Perimeter)\n");

    printf("8. Ellipse (Area & Approx. Perimeter)\n");

    printf("9. Regular Polygon (Area & Perimeter)\n");

 

    printf("\n--- 3D Shapes ---\n");

    printf("10. Cube (Surface Area & Volume)\n");

    printf("11. Cuboid (Surface Area & Volume)\n");

    printf("12. Sphere (Surface Area & Volume)\n");

    printf("13. Cylinder (Surface Area & Volume)\n");

    printf("14. Cone (Surface Area & Volume)\n");

 

    printf("\nEnter your choice (1-14): ");

    scanf("%d", &choice);

 

    switch(choice) {

        // 2D SHAPES

        case 1: // Rectangle

            printf("\nEnter length and width: ");

            scanf("%f %f", &length, &width);

            area = length * width;

            perimeter = 2 * (length + width);

            printf("Area = %.2f, Perimeter = %.2f\n", area, perimeter);

            break;

 

        case 2: // Circle

            printf("\nEnter radius: ");

            scanf("%f", &radius);

            area = PI * radius * radius;

            circumference = 2 * PI * radius;

            printf("Area = %.2f, Circumference = %.2f\n", area, circumference);

            break;

 

        case 3: // Square

            printf("\nEnter side: ");

            scanf("%f", &side);

            area = side * side;

            perimeter = 4 * side;

            printf("Area = %.2f, Perimeter = %.2f\n", area, perimeter);

            break;

 

        case 4: // Triangle

            printf("\nEnter sides a, b, c: ");

            scanf("%f %f %f", &a, &b, &c);

            perimeter = a + b + c;

            s = perimeter / 2;

            area = sqrt(s * (s - a) * (s - b) * (s - c));

            printf("Area = %.2f, Perimeter = %.2f\n", area, perimeter);

            break;

 

        case 5: // Trapezium

            printf("\nEnter base1, base2 and height: ");

            scanf("%f %f %f", &base1, &base2, &height);

            area = 0.5 * (base1 + base2) * height;

            printf("Area = %.2f\n", area);

            break;

 

        case 6: // Parallelogram

            printf("\nEnter base, side, and height: ");

            scanf("%f %f %f", &base1, &side, &height);

            area = base1 * height;

            perimeter = 2 * (base1 + side);

            printf("Area = %.2f, Perimeter = %.2f\n", area, perimeter);

            break;

 

        case 7: // Rhombus

            printf("\nEnter diagonals d1 and d2, and side: ");

            scanf("%f %f %f", &a, &b, &side);

            area = (a * b) / 2;

            perimeter = 4 * side;

            printf("Area = %.2f, Perimeter = %.2f\n", area, perimeter);

            break;

 

        case 8: // Ellipse

            printf("\nEnter major axis and minor axis: ");

            scanf("%f %f", &major_axis, &minor_axis);

            area = PI * major_axis * minor_axis;

            perimeter = PI * (3*(major_axis+minor_axis) - sqrt((3*major_axis+minor_axis)*(major_axis+3*minor_axis)));

            printf("Area = %.2f, Perimeter ≈ %.2f\n", area, perimeter);

            break;

 

        case 9: // Regular Polygon

            printf("\nEnter number of sides (n) and side length: ");

            scanf("%d %f", &n, &side);

            perimeter = n * side;

            area = (n * side * side) / (4 * tan(PI / n));

            printf("Area = %.2f, Perimeter = %.2f\n", area, perimeter);

            break;

 

        // 3D SHAPES

        case 10: // Cube

            printf("\nEnter side: ");

            scanf("%f", &side);

            surface_area = 6 * side * side;

            volume = side * side * side;

            printf("Surface Area = %.2f, Volume = %.2f\n", surface_area, volume);

            break;

 

        case 11: // Cuboid

            printf("\nEnter length, width, height: ");

            scanf("%f %f %f", &length, &width, &height);

            surface_area = 2 * (length*width + width*height + height*length);

            volume = length * width * height;

            printf("Surface Area = %.2f, Volume = %.2f\n", surface_area, volume);

            break;

 

        case 12: // Sphere

            printf("\nEnter radius: ");

            scanf("%f", &radius);

            surface_area = 4 * PI * radius * radius;

            volume = (4.0/3) * PI * radius * radius * radius;

            printf("Surface Area = %.2f, Volume = %.2f\n", surface_area, volume);

            break;

 

        case 13: // Cylinder

            printf("\nEnter radius and height: ");

            scanf("%f %f", &radius, &height);

            surface_area = 2 * PI * radius * (radius + height);

            volume = PI * radius * radius * height;

            printf("Surface Area = %.2f, Volume = %.2f\n", surface_area, volume);

            break;

 

        case 14: // Cone

            printf("\nEnter radius and height: ");

            scanf("%f %f", &radius, &height);

            surface_area = PI * radius * (radius + sqrt(radius*radius + height*height));

            volume = (PI * radius * radius * height) / 3;

            printf("Surface Area = %.2f, Volume = %.2f\n", surface_area, volume);

            break;

 

        default:

            printf("\nInvalid choice! Please select 1–14.\n");

    }

 

    return 0;

}

Output

 
OUTPUT 1 :

Example 1 (Cube)

=== Geometry Calculator === --- 2D Shapes --- 1. Rectangle (Area & Perimeter) 2. Circle (Area & Circumference) 3. Square (Area & Perimeter) 4. Triangle (Area & Perimeter) 5. Trapezium (Area) 6. Parallelogram (Area & Perimeter) 7. Rhombus (Area & Perimeter) 8. Ellipse (Area & Approx. Perimeter) 9. Regular Polygon (Area & Perimeter) --- 3D Shapes --- 10. Cube (Surface Area & Volume) 11. Cuboid (Surface Area & Volume) 12. Sphere (Surface Area & Volume) 13. Cylinder (Surface Area & Volume) 14. Cone (Surface Area & Volume) Enter your choice (1-14): 10 Enter side: 5 Surface Area = 150.00, Volume = 125.00
OUTPUT 2 :

Example 2 (Sphere)

=== Geometry Calculator === --- 2D Shapes --- 1. Rectangle (Area & Perimeter) 2. Circle (Area & Circumference) 3. Square (Area & Perimeter) 4. Triangle (Area & Perimeter) 5. Trapezium (Area) 6. Parallelogram (Area & Perimeter) 7. Rhombus (Area & Perimeter) 8. Ellipse (Area & Approx. Perimeter) 9. Regular Polygon (Area & Perimeter) --- 3D Shapes --- 10. Cube (Surface Area & Volume) 11. Cuboid (Surface Area & Volume) 12. Sphere (Surface Area & Volume) 13. Cylinder (Surface Area & Volume) 14. Cone (Surface Area & Volume) Enter your choice (1-14): 12 Enter radius: 7 Surface Area = 615.75, Volume = 1436.76 OUTPUT 3 :

Example 3 (Cylinder)

=== Geometry Calculator === --- 2D Shapes --- 1. Rectangle (Area & Perimeter) 2. Circle (Area & Circumference) 3. Square (Area & Perimeter) 4. Triangle (Area & Perimeter) 5. Trapezium (Area) 6. Parallelogram (Area & Perimeter) 7. Rhombus (Area & Perimeter) 8. Ellipse (Area & Approx. Perimeter) 9. Regular Polygon (Area & Perimeter) --- 3D Shapes --- 10. Cube (Surface Area & Volume) 11. Cuboid (Surface Area & Volume) 12. Sphere (Surface Area & Volume) 13. Cylinder (Surface Area & Volume) 14. Cone (Surface Area & Volume) Enter your choice (1-14): 13 Enter radius and height: 3 10 Surface Area = 245.04, Volume = 282.74

Explanation

2D Formulas

  • Rectangle → Area = l×w, Perimeter = 2(l+w)
  • Circle → Area = πr², Circumference = 2πr
  • Square → Area = a², Perimeter = 4a
  • Triangle → Heron’s formula
  • Trapezium → Area = ½(base1+base2)×h
  • Parallelogram → Area = base×h, Perimeter = 2(base+side)
  • Rhombus → Area = ½d1×d2, Perimeter = 4a
  • Ellipse → Area = πab, Perimeter ≈ Ramanujan’s formula
  • Polygon → Area = (n×a²)/(4×tan(π/n)), Perimeter = n×a

3D Formulas

  • Cube → SA = 6a², Volume = a³
  • Cuboid → SA = 2(lb+bh+hl), Volume = l×b×h
  • Sphere → SA = 4πr², Volume = (4/3)πr³
  • Cylinder → SA = 2πr(h+r), Volume = πr²h
  • Cone → SA = πr(r+√(r²+h²)), Volume = (πr²h)/3