Я ОЧЕНЬ новичок в программировании, и я использую книгу, которая поможет мне написать код, который разрешит ln (1 + x) после ввода пользователем «x». Мой синтаксис - это именно то, как книга имеет его в своем примере, но я продолжаю получать error: expected expression before 'long'
в строке 28. Строка 28 - это строка, которая читает long double y = LOG(1+(x));
.ожидаемое выражение перед 'long'
#include <stdio.h>
#include <math.h>
#define LOG(X) _Generic((X),\
long double: log(1+(x))\
)
int main()
{
double x;
printf("Please enter a number from -1 to +1: ");
scanf("%f", &x);
long double y = LOG(1+(x));
printf("From C math library: ln(1+x) = %f\n", y);
}
Что вы пытаетесь сделать в 'LOG' макроса? – tsnorri
Скомпилированы ли с поддержкой C11? С GCC это будет '-std = c11' или' -std = gnu11' в качестве опции командной строки? –
Я не совсем уверен, как ответить на ваши вопросы, все, что я пытаюсь сделать, - это решить ln (1 + x) с x, заданный пользователем (от -1 до 1), и напечатать ответ. – dontdeimos