У вас есть несколько проблем:
В определениях функций не должно быть конечной точки с запятой:
void triangle(double base, double height); // <-- remove this semicolon
{
area = base * height * 0.5;
cout << "The AREA of your Triangle is " << area << ". \n\n";
}
Эта ошибка присутствует и в других определениях,Точка с запятой завершает объявление функции forward (вверху файла), но при определении функции скобки заменяют его.
Вы также объявляете три функции triangle
/ circle
/ rectangle
для возврата double
, но в реализации вы определяете их для возврата void
, что не совпадает. Вероятно, это источник конкретной ошибки, которую вы получаете.
Измените либо предварительные объявления, чтобы они соответствовали определениям, либо наоборот.
Эти три функции также пытаютсяприсвойте переменной area
, которая не входит в область видимости. Эта переменная должна быть объявлена в этих функциях, если вы хотите использовать ее там.
Обратите внимание, что переменная area
в main()
недоступна из этих функций.
определение для rectangle
начинается с объявления переменной, которое не имеет смысла:
double fc = rectangle(double length, double width);
Это анализируется как объявление глобальной переменной fc
, которая инициализируется в результате вызова rectangle
функция, но синтаксис аргумента неверен, поэтому синтаксический анализ не удастся. Предположительно это должно читаться следующим образом:
void rectangle(double length, double width)
или
double rectangle(double length, double width)
Функция circle()
относится к символу PI
, но это не входит в объем. (Вы объявляете PI
внутри main()
, чтобы оно было видно только внутри этой функции. Это можно исправить, переместив его в глобальную область видимости.)