Indirection requires pointer operand ('double' invalid) как исправить


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define _USE_MATH_DEFINES
#define M_SQRT

double x;
double A;
double tan(double );
double cos(double );

int main(void )
{
    system("chcp 1251");
    printf("\n Введіть х:\n");
    scanf("%lf", &x);
    if( x < 1 && x> -1 ){
        A = (( 1 / tan(x) ) - ( ( 2*x ) / (x - 0.4) ) + ( M_SQRT * cos(x*x*x) ) );
        printf("\n Значення виразу дорівнює:\n %lf", &A);
    }
    else
        printf("\n Введене число не відповідає ОДЗ");
}


Ответы (1 шт):

Автор решения: EOF

У Вас пустой #define M_SQRT. Это значит, что код

(M_SQRT * cos(x*x*x))

превращается в

(* cos(x*x*x))

А это уже разыменование указателя. cos возвращает double, а не указатель.

→ Ссылка