Помогите! Не могу найти проблему

#include <iostream>
#include <locale.h>
#include <conio.h>
#include <math.h>

using namespace std;
double find_root(double(*f)(double), double a, double b, double e)
{
    double x = (a + b) / 2;
    while ((b - a) / 2 > e)
    {
        if (f(a) == 0)
        {
            return a;
        }
        if (f(b) == 0)
        {
            return b;
        }
        if (f(x) == 0)
        {
            return x;
        }
        if (f(a) * f(x) > 0)
        {
            a = x;
        }
        else
        {
            b = x;
        }
        x = (a + b) / 2;
    }
    return x;
}
double f(double x) {

    return   2 * x * log(x) - 3;
}
void equation()
{
    setlocale(LC_ALL, "rus");
    double e = 0.0001;
    double a, b, c;
    cout << "a="; cin >> a;
    cout << "b="; cin >> b;
    if (f(a)*f(b)>0)
    {
        cout << "Неправильный диапазон";
    }
    else
    {
        c = find_root(f, a, b, e);
        cout << "Решение уравнения" << c;
    }
    _getch();
}

include <iostream>

include <locale.h>

include <conio.h>

include <math.h>

using namespace std;
double find_root(double(*f)(double),double a, double b, double e)
{
double x = (a + b) / 2;
while ((b — a) / 2 > e)
{
if (f(a) == 0)
{
return a;
}
if (f(b) == 0)
{
return b;
}
if (f(x) == 0)
{
return x;
}
if (f(a) * f(x) > 0)
{
a = x;
}
else
{
b = x;
}
x = (a + b) / 2;
}
return x;
}
double f(double x) {

return   2 * x * log(x) - 3;

}
int main()
{
setlocale(LC_ALL, «rus»);
double e = 0.0001;
double a, b, c;
cout << «a=»; cin >> a;
cout << «b=»; cin >> b;
if (f(a)*f(b)>0)
{
cout << «Неправильный диапазон»;
}
else
{
c = find_root(f, a, b, e);
cout << «Решение уравнения » << c;
}
_getch();
return 0;
}

Заменил void equation() на int main()

#include <iostream>
#include <locale.h>
#include <conio.h>
#include <math.h>

using namespace std;
double find_root(double(*f)(double),double a, double b, double e)
{
    double x = (a + b) / 2;
    while ((b - a) / 2 > e)
    {
        if (f(a) == 0)
        {
            return a;
        }
        if (f(b) == 0)
        {
            return b;
        }
        if (f(x) == 0)
        {
            return x;
        }
        if (f(a) * f(x) > 0)
        {
            a = x;
        }
        else
        {
            b = x;
        }
        x = (a + b) / 2;
    }
    return x;
}
double f(double x) {

    return   2 * x * log(x) - 3;
}
int main()
{
    setlocale(LC_ALL, "rus");
    double e = 0.0001;
    double a, b, c;
    cout << "a="; cin >> a;
    cout << "b="; cin >> b;
    if (f(a)*f(b)>0)
    {
        cout << "Неправильный диапазон";
    }
    else
    {
        c = find_root(f, a, b, e);
        cout << "Решение уравнения " << c;
    }
    _getch();
    return 0;
}

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.