Ошибка в коде вычисления факториала - C (СИ)
Формулировка задачи:
Кто подскажет где в данной программе ошибка?
Заранее благодарю!
#include <stdio.h>
#include <math.h>
#include <conio.h>
main()
{
long int f=1,x,n,j,i;
float s,zn;
printf("\nx: ");
scanf("%ld",&x);
for(j=1;j<=pow(x,2);j++)
{
f=f*j;
}
zn=f;
for(i=256;i>=2;i/=2)
{
zn=pow(x,2)+i/zn;
printf("\t%f",zn);
}
s=x/zn;
printf("\nsum=%f",s)
getch();
}Решение задачи: «Ошибка в коде вычисления факториала»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
#include <conio.h>
main()
{
long int f=1,x,n,j,i;
float s,zn;
clrscr();
printf("\nx: ");
scanf("%ld",&x);
for(j=1;j<=pow(x,2);j++)
{
f=f*j;
}
zn=f;
for(i=256;i>=2;i/=2)
{
zn=pow(x,2)+i/zn;
printf("\n%f",zn);
}
s=x/zn;
printf("\n\nsum=%f",s);
getch();
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем переменные:
- f (долгое целое число) инициализируется единицей;
- x (долгое целое число), в которое считывается значение от пользователя;
- n (долгое целое число), не используется;
- j (целое число), используется для внутреннего цикла;
- i (целое число), используется для внешнего цикла;
- s (число с плавающей точкой), используется для хранения результата;
- zn (число с плавающей точкой), используется для хранения факториала числа x.
- Очищаем экран и выводим запрос на ввод значения x.
- Запускаем два цикла:
- Внутренний цикл. Для каждого значения j от 1 до x^2 умножаем f на j.
- Внешний цикл. Начинается с i=256, дробь заменяется на x^2, затем i делится на zn и к результату прибавляется i/zn.
- Выводим значение zn.
- Вычисляем s, разделив x на zn.
- Выводим значение s.
- Ждем нажатия клавиши.