@DartNyan

Должно ли так быть?

Привет.
Простое задание, но как-то что-то..
spoiler
lYr0bBhLj0c.jpg

Левая часть должна совпадать с правой.
Вместо бесконечности можно взять 100.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    double x;
    double resultForLN = 0, resultForSum = 0;

    printf("Enter X : ");
    scanf("%g",&x);

        resultForLN = log( (1.0 + x) / (1.0 - x) );
    printf("%g",resultForLN); // Левый результат

    for (int k = 1; k < 100; k++)
        resultForSum += pow(x, (2.0 * k - 1.0)) / (2.0 * k - 1.0);
    printf("\n%g",resultForSum * 2.0); // Правый результат
}


Fa3Zz-24S-c.jpg
  • Вопрос задан
  • 299 просмотров
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
Ошибка у тебя в scanf.

scanf("%lf",&x);

%lg тоже работает — по крайней мере, на MinGW.

Мало известно, но у scanf немного не такой формат подстановок, чем у printf.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@MiiNiPaa
Забудьте про float, всегда используйте double по умолчанию.
Вы в конце вычисляете x^197 / 197, Даже при х = 2 это во флоат не влезет.
Ответ написан
@mad_god
Отлично работает на числах, меньших по модулю единицы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы