2013-09-03 3 views
2

Я неделя на вводный класс программирования, и у меня возникают проблемы с фиксацией того, что должно быть относительно простым кодом. Я продолжаю получать недопустимый аргумент типа унарной ошибки «*».Недопустимый аргумент типа унарного '*'

#include <stdio.h> 
#define PI 3.14159; 
int main() 
{ 
    float r; 
    float area; 
    scanf("%f", &r); 
    area = PI * r * r; 
    printf("Area is %f", area); 
    return 0; 
} 

Может кто-нибудь объяснить это и как его исправить?

ответ

10
#define PI 3.14159; 
       ^

Оставить точку с запятой. Оставив его в код будет расширяться:

area = 3.14159; * r * r; 
+3

Или еще лучше, остановите использование #define. – vipw

+0

Отлично, спасибо. –

+4

@RobertAleksanderYevdokimov Не '#define PI 3.14159', на первом месте. '#include ' и использовать 'M_PI'. Как правило: не изобретайте велосипед, используйте стандартную библиотеку, когда это возможно. –

2

Вы должны удалить лишнюю ; в определении макроса PI. Это не нужно для макроса, и в вашем случае возникает синтаксическая ошибка после расширения.