Недопустимые операнды типов 'int' и 'double (double *, double *, int)' для бинарного оператора

0

Мы выполняем линейную регрессию для проекта в классе. Мне нужно написать функцию. Я пробовал статическое кастинг и другие способы изменения этого "int n" на double, чтобы он не выдавал ошибку? Или я полностью ошибаюсь?

функция

void linear_regression(double x[], double y[], int n,
                   double *slope, double *y_int)
{    
    double sum_x, sum_y, sum_x_Squared, sum_Squared_x, product_x_y;
    double m = *slope, b = *y_int;

    sum_x = sum_array(x, n);
    sum_y = sum_array(y, n);

    sum_Squared_x = sum_square_array(x, n);
    sum_x_Squared = sum_array(x, n) * sum_array(x, n);

    product_x_y = sum_product_of_arrays(x, y, n);

    //I'm getting an error on the next statement, about the n
    m = ((sum_x * sum_y) - (n * sum_product_of_arrays)) /
            ((sum_x_Squared) - (n * sum_Squared_x));
    b = ((sum_y - (m * sum_x))/(n));

    return;
}

Сообщение об ошибке

Invalid operands of types 'int' and 'double(double*, double*, int)' to
binary operator.
  • 0
    Примечание: double(double*, double*, int) является функцией, а не double .
Теги:
types
binary
operator-keyword
operands

1 ответ

5
Лучший ответ

В n * sum_product_of_arrays sum_product_of_arrays - это функция, которую вы вызывали для получения product_x_y. Вы имели в виду использовать product_x_y?

  • 0
    хороший улов, +1, но почему это должно быть сделано вики-сообществом?
  • 0
    Спасибо. Кажется, не хватает сна.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню