C++ ответ выводит Inf, а не число

#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>
#include "stdio.h"

using namespace std;

int main()
{
    double x, n, a, b, c;
    x = 0.50;
    b = 1.0;
    a = 0.50;
    c = (b - a)/9;
    n = 9;
    while (n >= 0) {
        cout << n << " " << x + c * n << " " << (sin(0.5 * M_PI * (x + c * n)) + pow(x, 1 / 5.0)) / (sqrt(abs(cos(M_PI * (x + c * n)) + 1.0)) * pow(M_E, sqrt(x + c * n)));
        cout << endl;
        --n;
    }

}

x находится в пределе [0.5, 1.0]
n = 10
то есть таблица должна выводиться в 10 строках
функция для решения задачи:

sin(0.5 * M_PI * x) + pow(x, 1 / 5.0)) / (sqrt(abs(cos(M_PI * x) + 1.0)) * pow(M_E, sqrt(x))  

должно выводиться n, x, ответ функции.


Ответы (1 шт):

Автор решения: Harry

При первом выполнении чему равно (x + c * n)? Единице.

Чему, соответственно, равен cos(M_PI * (x + c * n))? Минус единице.

Минус единица плюс единица равно нулю.

На который вы и пытаетесь делить.

Еще вопросы есть? :)

P.S. Если даже не умеете работать с отладчиком, можно добавить пару инструкций вывода:

    cout << "(x + c * n) = " << (x + c * n) << endl;
    cout << "cos(M_PI * (x + c * n)) = " << cos(M_PI * (x + c * n)) << endl;

и посмотреть, что происходит...

→ Ссылка