Было задание найти корни уравнения методом хорд. Код выглядит следующим образом:
#include <iostream>
#include <cmath>
using namespace std;
double f(double x)
{
return pow(cos(x), 3) + x * x * sin(x) + 20;
}
double findRoot(double (*f)(double), double a, double b,
double eps = 1e-5)
{
double t;
while (fabs(b - a) >= eps)
{
t = a + (f(b) * (b - a)) / (f(b) - f(a));
if (f(a) * f(t) < 0)
{
b = t;
}
else if (f(t) * f(b) < 0)
{
a = t;
}
else
return t;
}
return t;
}
int main()
{
cout.setf(ios::fixed);
double a, b;
cout << "\nEnter the limits,\n\nLeft limit,a= ";
cin >> a;
cout << "\nRight limit,b= ";
cin >> b;
double t = findRoot(f);
cout << "x=" << t << "f(x)=" << f(t) << endl;
return 0;
}
Ошибки выдает следующие
chord2.cc: In function ‘int main()’:
chord2.cc:36:22: error: too few arguments to function ‘double findRoot(double (*)(double), double, double, double)’
double t = findRoot(f);
^
chord2.cc:11:8: note: declared here
double findRoot (double (*f)(double), double a, double b, double eps=1e-5) {
Помогите, пожалуйста, понять, что не так.
Если только понять, что сообщает компилятор - то тут все просто: функция
double findRoot (double (*f)(double), double a, double b, double eps=1e-5)
у вас принимает 4 аргумента; в крайнем случае - с учетом значения по умолчанию - три. Вы же вызываете ее
double t = findRoot(f);
с единственным аргументом, не указав ни a
, ни b
...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем доброго времени суток, помогите пожалуйста разобратьсяБыла некая структура:
I have a problem, I work with Bluetooth Low EnergyI do not know how to organize a device search (Scan)
Предусмотреть два варианта ввода элементов массива: ввод с клавиатуры и ввод через генерацию случайных чиселРешение должно использовать...