Ошибка при поиске нужных элементов из массива в последовательности Фибоначчи с ++ - PullRequest
0 голосов
/ 10 января 2020

Так что я немного изменил код. Это все еще не работает, но я думаю, что я немного ближе. Программа должна проверить, соответствует ли введенное вами число (внутри бара [100]) числам Фибоначчи (сохранено в FIB [30]), а затем распечатать те, которые соответствуют.

#include <iostream>
#include <math.h>

using namespace std;

int main() {
    long x, bar[100], fib[30];

    cout << "Cate numere sunt in array? = ";
    cin >> x;
        for (int i = 0; i < x; i++) {
            cout << "bar[" << i << "]=";
            cin >> bar[i];
            }

    fib[0] = 1;
    fib[1] = 1;
    fib[2] = 2;
        for (int i = 3; i <= 30; i++) {

            fib[i] = fib[i - 2] + fib[i - 1];
        //  cout << fib[i] << " ";
        }
        for (int i = 0; i < x; i++) {
            bool fibonacci = false;
            int j = 0;
                while (j < 30  && !fib) {
                // the mistake is here ( ' || ' instead of ' && ')
                    if (fib[j] == bar[i]) {
                        fibonacci = true;
                        }
                    j++;
                }
                if (fibonacci) {
                    cout << bar[i] << " ";
            }
    }


return 0;
}```

Ответы [ 2 ]

0 голосов
/ 13 января 2020

Код выше работает для меня очень хорошо. Он печатает каждое правильное число последовательности Фибоначчи, которую вы вводите в массиве bar [100]. Отдельное спасибо @ PaulMcKenz ie и всем, кто помог!

0 голосов
/ 10 января 2020

Переместите инициализацию bar [1] bar [2] и bar [3] за пределы для l oop. Они не определены вне его рамок.

...