Вычислить сумму произведений - C (СИ)

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

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

Дано натуральное число N. Вычислить S= сумма (от i=1 до N) произведений(от j=1 до i ) j! / i!
#include<stdio.h>
#include<math.h>
 
int fact(int i)
{
    int f = 1;
    if(!i || i == 1)
        return 1;
    do
        f *= i--;
    while (i != 0);
    return f;
}

int main()
{   int i,j,n ;
    float s=0,k=1 ;
 
    printf("Vvedite n: ");
    scanf ("%d", &n);
    for(i=1;i<=n;i++)
    {   
        for(j=1;j<=i;j++)
        {   k*=fact(j)/fact(i) ;
            //printf("%d\n",k);
        }
        s+=k;
    }
    printf("\n%.2f\n",s);
    return 0;
}
Вот я написал, но чёт не работает. ПЛЗ, проверьте и исправть, если можете

Решение задачи: «Вычислить сумму произведений»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
int fact(int i)
{
    int f = 1;
    if(!i || i == 1)
        return 1;
    do
        f *= i--;
    while (i != 0);
    return f;
}
int main()
{
    int i, N, j;
    double S = 0;
    printf("Enter N: ");
    scanf("%d", &N);
    for(i = 1; i < N; ++i)
        for(j=1;j<i; j++)
        S += (double)(fact(j)) / (double)fact(i);
    printf("\n%f\n", S);
    return 0;
}

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

  1. Включаем необходимые заголовочные файлы:
    • stdio.h для работы с консолью
    • math.h для работы с математическими функциями
  2. Функция вычисления факториала:
    • int fact(int i)
    • Используем цикл do-while для вычисления факториала
    • Переменная f инициализируется единицей
    • Если i равно 0 или 1, то возвращаем 1
    • В противном случае, в цикле умножаем f на i и уменьшаем i на 1
    • Возвращаем итоговое значение f
  3. Основная функция программы:
    • int main()
    • Просим пользователя ввести значение N
    • С помощью scanf считываем введенное значение и сохраняем его в переменной N
    • Используем два вложенных цикла for
      • Первый цикл идет от 1 до N-1
      • Второй цикл идет от 1 до i-1, где i это значение из первого цикла
    • Внутри второго цикла добавляем значение факториала j к переменной S
    • Выводим значение переменной S на экран
    • Возвращаем 0, чтобы указать, что программа успешно завершилась
  4. Переменные:
    • i и j - переменные-счетчики для циклов
    • N - переменная для хранения введенного значения
    • f - переменная для хранения факториала в функции fact
    • S - переменная для хранения суммы произведений в функции main
  5. Ввод данных:
    • Просим пользователя ввести значение N
    • Считываем введенное значение с помощью scanf
  6. Вычисления:
    • Используем два вложенных цикла for для вычисления суммы произведений
      • Первый цикл идет от 1 до N-1
      • Второй цикл идет от 1 до i-1, где i это значение из первого цикла
    • Внутри второго цикла добавляем значение факториала j к переменной S
  7. Вывод результата:
    • Выводим значение переменной S на экран
  8. Обработка ошибок:
    • Не обрабатываем ошибки в данном коде
  9. Получение итогового результата:
    • Программа выводит на экран сумму произведений, которую можно использовать в дальнейшем анализе или расчетах.

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


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

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

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