fork download
  1. /*
  2. Программа расчета синуса.
  3. Версия 0.1
  4. Лицензия свободная.
  5. */
  6.  
  7. #include <stdio.h>
  8.  
  9. int main(void)
  10. {
  11. // вроде все объявления переменных нужно вначале писать
  12. int n = 3;
  13. int sign = 1;
  14. float k;
  15. float pi = 3.1415926535897932384626433832795; // float это 7 цифр вроде
  16. float pi2 = 2 * pi;
  17. float sinus;
  18. float angle;
  19. float angle2;
  20. float oldsinus = 0;
  21.  
  22. puts("Расчет синуса угла.");
  23. puts("Введите угол в радианах.");
  24. scanf("%f", &angle);
  25.  
  26. // приведение угла к [0; pi/2] чтоб быстрее считать
  27. k = angle;
  28. if (k < 0) {
  29. sign = -1;
  30. k *= -1;
  31. }
  32. if (k > pi2) {
  33. k -= pi2 * (int)(k / pi2);
  34. }
  35. if (k > pi * 1.5) {
  36. sign *= -1;
  37. k = pi2 - k;
  38. }
  39. else if (k > pi) {
  40. sign *= -1;
  41. k -= pi;
  42. }
  43. else if (k > pi / 2) {
  44. k = pi - k;
  45. }
  46.  
  47. // собственно расчет синуса
  48. sinus = k;
  49. angle2 = k * k;
  50. while (oldsinus != sinus) {
  51. k *= -1 * angle2 / n / (n - 1);
  52. oldsinus = sinus;
  53. sinus += k;
  54. //printf("%.7f\n", sinus); // для отладки
  55. n += 2;
  56. }
  57. sinus *= sign;
  58.  
  59. printf("Синус равен %f\n", sinus);
  60.  
  61. return 0;
  62. }
Success #stdin #stdout 0s 10320KB
stdin
1
stdout
Расчет синуса угла.
Введите угол в радианах.
Синус равен 0.841471