Рассчитать ряд в C - PullRequest
       13

Рассчитать ряд в C

0 голосов
/ 06 ноября 2019

Я написал программу на C для этой серии. но когда я ввожу n = -8 и m = 2, результат равен нулю.

Почему и как я могу это исправить?

Серия здесь

#include <stdio.h>
#include <math.h>

int main()
{
    int n,m;
    double sum = 0;
    printf("Enter n:\n");
    scanf_s("%d",&n);

    printf("Enter m:\n");
    scanf_s("%d", &m);

    for (int i = -10; i <= m; i++)
    {
        for (int j = 1; j <= n; j++)
        {
            sum += (pow((i + j), 3) / pow(j,2) );
        }
    }
    printf_s("%f",sum);
}

Ответы [ 2 ]

3 голосов
/ 06 ноября 2019
for (int j = 1; j <= n; j++)
        {
            sum += (pow((i + j), 3) / pow(j,2) );
        }

, когда вы пытаетесь ввести n = -8, этот цикл не будет работать, потому что j=1 и условие работает до j<=n

0 голосов
/ 06 ноября 2019

В вашем коде единственное выражение, которое изменяет переменную с именем sum, находится внутри внутреннего цикла. Цикл будет выполняться, только если его управляющее выражение j <= n истинно.

Вы инициализируете j значением 1. Если вы дадите n любое значение меньше 1, цикл не будет выполнен, потому что j <= n будет ложным.

Поскольку начальное значение переменной sum равно 0, а выражениеизменяющий sum не выполняется, вывод - 0.

...