Творится что-то непонятное Visual Studio 15

152
22 февраля 2018, 14:50

Код выдает неправильные значения, хотя должен работать нормально. Начал отладку, и тут выясняется, что вижуалка скачет по функции как ей хочется, вообще независимо от строк и функций. Какие-то пропускает, как ей хочется, на некоторые залетает по нескольку раз. Что за проблема понять не могу, гугл не помогает.

#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
double f(double x) {
    return sin(x) + x * x;
}
double division(double a, double b, double(*f)(double)) {

double eps = 0.01;
    double c = a + b / 2;
    double fc = f(c);
    double x, y, fx, fy;
    while ((b - a) > eps) {
        x = a + (b - a) / 4;
        y = b - (b - a) / 4;
        fx = f(x);
        fy = f(y);
        if (fx < fc) {
            b = c;
            c = x;
            fc = fx;
        }
        else if (fy < fc) {
            a = c;
            c = y;
            fc = fy;
        }
        else {
            a = x;
            b = y;
        }
    }
    return c;
}
void main() {
    double a = -3;
    double b = 0;
    cout << division(a, b, &f) << endl;
}

Стоит отметить, что ранее все работало прекрасно, и никаких проблем не было.

READ ALSO
В чём разница между этими объявлениями указателя?

В чём разница между этими объявлениями указателя?

Можете, пожалуйста, сказать, чем отличаются эти строки ptr1 и ptr2? Работают они, вроде бы, одинаково

155
Разница между указателем и ссылкой

Разница между указателем и ссылкой

Я не понимаю, почему выводит разные значения, разве ссылка не должна неявно преобразовываться в указатель на mas?

125
Асинхронное выполнение функции

Асинхронное выполнение функции

Функция, которая принимает параметры:

147
вектор классов - обращение

вектор классов - обращение

Есть класс, есть вектор векторов этого классаКак обратиться к элементу класса через вектор векторов?

152