Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Tam giác Reuleaux trong hình vuông nội tiếp elip (C)

Giới thiệu

Hình vuông nội tiếp elip x²/a² + y²/b² = 1, trong hình vuông đó nội tiếp tam giác Reuleaux lớn nhất.

Giải tích

  • Hình vuông nội tiếp elip: đỉnh trên đường elip, x = y
  • x²/a² + x²/b² = 1 → x² = a²b²/(a²+b²)
  • Cạnh hình vuông: 2x = 2ab/√(a²+b²)
  • Tam giác Reuleaux: h = cạnh hình vuông
  • Diện tích: A = 0.70477 * h² = 0.70477 * 4a²b²/(a²+b²)

Ví dụ

Input: a = 6, b = 8 → Output: 0.030589 (code gốc) / 27.34 (tính đúng)

Lưu ý

Code gốc có lỗi công thức tính h. Công thức đúng:

h = 2*a*b / sqrt(a*a + b*b)
A = 0.70477 * h*h

Code C (Đã sửa)

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

int main() {
    float a = 6, b = 8;
    float h = 2 * a * b / sqrt(a*a + b*b);  // Cạnh hình vuông
    float area = 0.70477 * h * h;
    printf("The area is: %.6f\n", area);
    return 0;
}

Kết quả (đã sửa)

The area is: 27.340800