Как найти ошибку в расчете суммы - PullRequest
0 голосов
/ 27 января 2019

Я попытался выполнить задачу с подсчетом сумм.Задача Sn = (cosx / 1) + ((cosx + cos2x) / 2) + ... + ((cosx + ... + cosxn) / n); x - число с плавающей запятой, n - целое число.Но программа превзошла ноль в любой ситуации.

Ее код на C ++ написан на DevC ++ 5.11.Я почти закончил код, но не могу найти ошибку.

float funct(float x, float s, int n)
{
    if (n < 1) {
        cout << s;
        return 0;
    }
    for (int i = n; i < 1; i--) {
        float a = (cos(i * x)) / n;
        s = s + a;
    }
    return funct(x, s, n - 1);
}

int main(void)
{
    float x = 1, s = 0;
    int n;
    cin >> n;
    funct(x, s, n);
}

Я ожидаю, что на выходе будет что-то вроде допустимых чисел с плавающей точкой, но фактический результат равен нулю.

1 Ответ

0 голосов
/ 27 января 2019
for (int i = n; i < 1; i--) 

Должно быть

for (int i = 1; i <= n; i++) 

, если вы хотите, чтобы оно повторялось от 1 до n

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...