В чём ошибка? - C (СИ) (154114)

Узнай цену своей работы

Формулировка задачи:

#include <stdio.h>
#include <math.h>
 
#define precision 1e-7
 
while (x <= b){
        s = 0;
        for (k = 0; k <= n; k++)
        {
            rez = 1;
            for (i = 1; i<= k; i++)
                rez *= i;
            s += (cos(k*Pi / 4)/rez)*pow(x,k);
        }
 
double s(double * x) {
  int n = 1;
  double sum, tmp;
  sum = *x;
double u1;
  do {
    u1 = exp(x*cos(Pi / 4);
    tmp = cos(x*sin(Pi / 4))*u1;
    n++;
    sum += tmp;
  } while (fabs(tmp) > precision);
 
//  printf("n=%i tmp=%10.8f\n", n, tmp);
  return sum;
}
 
int main() {
 
  double a = 0.1;
  double b = 0.8;
  double h = 0.1;
 
  do {
    printf("x=%3.1f  Y=%10.4f  S=%10.4f\n", a, y(a), s(&a));
    a += h;
  } while (a<=b);
  return 0;
}
Нужно вычислить текущие значения Y(x) и S(x) (где x принадлежит диапазону [a, b])реализовать в виде отдельных функций. S(x)=(cos(k*Pi / 4)/!4)*pow(x,k)

Решение задачи: «В чём ошибка?»

textual
Листинг программы
int factorial (int n)
     {
         int f=1,i;
         for(i=2;i<=n;++i)
         {
             f=f*i;
         }
         return f;
     }

Объяснение кода листинга программы

  1. В функции factorial объявлены две переменные: f и i.
  2. Переменная f инициализируется значением 1.
  3. Переменная i не инициализируется и будет использоваться как счётчик в цикле.
  4. Цикл for начинается с i=2 и продолжается до тех пор, пока i меньше или равно n.
  5. Внутри цикла f умножается на i.
  6. После завершения цикла f возвращается из функции.
  7. Если вызвать функцию factorial с аргументом, она вернёт факториал этого числа.
  8. В данном коде нет проверок на входные данные, поэтому предполагается, что аргумент всегда будет неотрицательным целым числом.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы