Dinesh Sahoo Ответов: 2

Выведите сумму рядов до n чисел


1 - (2/3!) + (3/4!) - (4/5!) + .... ± (n/(n+1)!).

Что я уже пробовал:

#включить<stdio.h>
#включить<conio.h>
пустота главная()
{
int i,sum=0;
для(j=0;j<=n;j++)
{
сумма+=2i/i+1;
}
printf("сумма=%d",sum);
}

Chris Losinger

То, что вы разместили здесь, даже не будет компилироваться.

Richard Deeming

* 2i/i + 1 будет означать (2i/i) + 1, нет 2i/(i+1);

* За исключением того, что я не думаю, что C позволяет вам умножать переменную на число без указания оператора умножения (2 * i);

* 2 * i/(i + 1) это далеко не то же самое, что i/(i + 1)! - умножение на 2-это не то же самое, что взятие факторный[^] делителя;

* Последовательность должна чередоваться между сложением и вычитанием членов.

* И в довершение всего, вы даже не используете переменную цикла!

Richard Deeming

Вы также должны предположить, что ваш учитель следит за этим сайтом и знает о ваших попытках обмануть домашнее задание.

2 Ответов

Рейтинг:
2

Rick York

Ваш цикл for должен иметь i в качестве переменной, так как вы объявили его, а не j.

У вас нет вопроса, на который вы должны ответить, но я все равно дам вам совет. Во - первых, напишите функцию для вычисления факториала значения. Это обеспечит знаменатель для каждого значения в ряду. В остальном это будет простое деление значений и суммирование результатов внутри цикла for.

Единственная полу-хитрая вещь здесь-это чередование сложения и вычитания. Вы можете сделать это несколькими способами. Один из них-использовать множитель и чередовать его от +1 до -1. Другой вариант-иметь логический флаг, который чередуется с true на false и сообщает вам, следует ли добавить или вычесть результат. Еще один способ-определить сложение или вычитание на основе того, является ли индекс цикла нечетным или четным, который вы можете найти, взяв по модулю 2 индекс цикла.


Рейтинг:
0

Rajeesh_R

Я думаю, что вы должны сделать то же самое, как это.

#include<stdio.h>
#include<conio.h>
int fact(int n)
{
    if(n == 0)
    {
       return 1;
    }
    return n * fact(n-1);
}
void main()
{
    int sum = 1, delta = -1;
    for(int i=2; i<=n; ++i)
    {
       sum += ((i / fact(i + 1)) * delta);
       delta *= -1;
    }
    printf("the sum=%d",sum);
}


Я не компилировал приведенный выше код. Но я думаю, что это поможет тебе.


Richard MacCutchan

Выполнение за других домашних заданий не помогает им учиться.