fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int main() {
  5. double x0, x, dx, xn, sum = 0; // Используем double для избежания переполнения
  6. int n = 1, i, j;
  7. long long fact; // Для факториала, но все равно есть риск переполнения при больших n
  8.  
  9. printf("Введите x0, x, dx:\n");
  10. scanf("%lf%lf%lf", &x0, &x, &dx);
  11.  
  12.  
  13. //Инициализация xn. Значение зависит от задачи. Пример:
  14. xn = 1.0;
  15.  
  16. for (i = 0; x0 + i * dx < x; i++) { // Исправленная логика цикла
  17. fact = 1;
  18. for (j = 1; j <= 2 * n; j++) {
  19. fact *= j; // Вычисление факториала
  20. }
  21.  
  22. if (fact == 0) { //Обработка деления на ноль
  23. printf("Ошибка: Деление на ноль. Прекращение работы.\n");
  24. return 1; //Возвращаем код ошибки
  25. }
  26.  
  27. xn = pow(-1, n) * pow(x0 + i * dx, 2 * n) / fact; //Правильное возведение в степень
  28. sum += xn;
  29. printf("Сумма: %lf\n", sum);
  30. printf("Факториал: %lld\n", fact);
  31. printf("Промежуточный x: %lf\n", xn);
  32. n++;
  33. }
  34. return 0;
  35. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
Введите x0, x, dx:
Сумма: 0.000000
Факториал: 2
Промежуточный x: -0.000000
Сумма: 0.000000
Факториал: 24
Промежуточный x: 0.000000
Сумма: 0.000000
Факториал: 720
Промежуточный x: -0.000000
Сумма: 0.000000
Факториал: 40320
Промежуточный x: 0.000000
Сумма: 0.000000
Факториал: 3628800
Промежуточный x: -0.000000