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

Мы делаем линейную регрессию для проекта в классе. Я должен написать функцию. Я пробовал статическое приведение и другие способы изменить это «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

Решение

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

5

Другие решения


По вопросам рекламы [email protected]