Eclipse C ++ не позволяет мне использовать глобальные переменные? - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь заставить эту рекурсивную программу подсчитывать, сколько раз она вызывает себя, и я собиралась использовать глобальную переменную, чтобы вести подсчет, но затмение по какой-то причине не распознает ее.Вот мой код:

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

int count = 0;

int fib(long int);


int main()
{
    long int number;
    cout << "Enter a number => ";
    cin >> number;
    cout << "\nAnswer is: " << fib(number) << endl;
    return 0;
}

int fib (long int n)
{
    //cout << "Fibonacci called with: " << num << endl;
    if ( n <0 )
    {
        cout <<" error Invalid number\n";
        exit(1);
    }
    else if (n == 0 || n == 1)
        return 1;
    else{
        count++;
        return fib(n-1) + fib(n-2);}
    cout << count;

}

Всякий раз, когда я первоначально объявляю count, он даже не распознает его как переменную, кто-нибудь знает причину этого?

1 Ответ

0 голосов
/ 04 декабря 2018

Ваша проблема здесь:

using namespace std;

Она вводит std::count из заголовка алгоритма , поэтому теперь count является неоднозначным.Вот почему людям говорят не делать using namespace std;.Вместо этого удалите эту строку и поставьте std::cout вместо cout (и то же самое для cin и endl).

...