fork download
  1. #include <stdio.h>
  2.  
  3. double S(double a, double b, double c)
  4. {
  5. double s = (a + b + c) / 2;
  6. double p = s * (s - a) * (s - b) * (s - c);
  7. double S = p, Sprev = 0;
  8.  
  9. while (S != Sprev) Sprev = S, S = (S + p / S) / 2;
  10. return S;
  11. }
  12.  
  13. int main(void)
  14. {
  15. printf("%.15g\n", S(2, 2, 2));
  16. printf("%.15g\n", S(2, 3, 3));
  17. printf("%.15g\n", S(3, 4, 5));
  18. printf("%.15g\n", S(5, 5, 6));
  19.  
  20. return 0;
  21. }
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
1.73205080756888
2.82842712474619
6
12