Найти ошибку в коде вычисления последовательности - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void Factorial(int number);
main();
{
double x,e,an,am;
int n;
printf ("vizislenie X1 posledovatelnosti,\n");
printf ("dla kotorogo vipolneno uslovie\n");
printf ("vvedite pervii chlen\n");
scanf("%lf",&x);
printf ("vvedite toznost\n");
scanf("%lf",&e);
printf ("chleni posledovatelnosti\n");
an=x;n=0;
do
{n++;
am=an;number=(n+1)
if (number > 1)
return number*Factorial(number -1);
return 1;
an=( 1 + ( pow(-1.0, n)) / number);
printf ("%lf\n",an);
} while (fabs(an-am)>=e);
printf ("vizislenie X1 posledovatelnosti,\n");
printf ("dla kotorogo vipolneno uslovie:%lf",an);
getch();
}Решение задачи: «Найти ошибку в коде вычисления последовательности»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <math.h>
main();
{
double x,e,an,am;
int n;
printf ("vizislenie X1 posledovatelnosti,\n");
printf ("dla kotorogo vipolneno uslovie\n");
printf ("vvedite pervii chlen\n");
scanf("%lf",&x);
printf ("vvedite toznost\n");
scanf("%lf",&e);
printf ("chleni posledovatelnosti\n");
an=x;n=0;
do
{n++;
am=an;
void Factorial(int number);
number=(n+1);
{ if (number> 1)
Factorial(number - 1);
printf("%d", number);
}
an=( 1 + ( pow(-1.0, n)) / number);
printf ("%lf\n",an);
} while (fabs(an-am)>=e);
printf ("vizislenie X1 posledovatelnosti,\n");
printf ("dla kotorogo vipolneno uslovie:%lf",an);
getch();
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется функция main()
- Объявляются переменные: x, e, an, am (double и int)
- Выводится первое предложение с просьбой ввести первый член последовательности
- Пользователь вводит первый член последовательности и сохраняет его в переменной x
- Выводится второе предложение с просьбой ввести точность и сохраняется в переменной e
- Выводится третье предложение с просьбой ввести члены последовательности
- Переменная an инициализируется значением первого члена последовательности, а переменная n инициализируется нулем
- Запускается цикл do, который будет выполняться до тех пор, пока fabs(an-am)>=e
- Внутри цикла an=( 1 + ( pow(-1.0, n)) / number); вычисляется следующий член последовательности
- Выводится значение an
- Если число n больше 1, то вызывается функция Factorial(n-1) для вычисления факториала (n-1)
- Выводится число n
- После выхода из цикла do, выводится сообщение о том, что последовательность вычислена
- Выводится последнее предложение с сообщением, что условие выполнено и вычисленный член последовательности равен an
- Запускается функция getch() для приостановки выполнения программы до тех пор, пока пользователь не нажмет клавишу
- Возвращается 0, что означает успешное выполнение программы