Задать вопрос
@vega2475

Как объявить функцию в другой функции?

При вызове в main() { F(7); } компилятор выдает ошибку: main.cpp: In function 'int F(int)':
main.cpp:9:17: error: 'G' was not declared in this scope
9 | return F(n-1) + G(n-2);
| ^

#include <iostream>
#include <cmath>
using namespace std;

int F(int n)
{
    
if (n > 2)
return F(n-1) + G(n-2);
else return 1;
}
int G(int n)
{
if (n > 2)
return G(n-1) + F(n-2);
else return 1;
}
int main()
{ 
cout << F(7);
return 0;
}
  • Вопрос задан
  • 67 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Надо использовать forward declaration.

Перед F напишите
int G(int n);

Это скажет компилятору, что есть вот такая функция. Ее определение же остается также дальше по тексту после F.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Сбер Москва
от 130 000 ₽
Wanted. Ростов-на-Дону
До 160 000 ₽
ClickStar Санкт-Петербург
от 150 000 до 300 000 ₽