Поиск, если элемент существует в очереди c ++ - PullRequest
0 голосов
/ 14 марта 2020

Итак, я пытался найти, существует ли число, введенное пользователем, в очереди или нет, если это так, функция вернет true, в противном случае - false. Однако это не сработало независимо от того, какой метод я пробую:

  bool cqueue::search(int x){ //this is my class cqueue
        if(empty()) { cout<<"\n\n queue is empty\n";  }
        for(int i=0;i<size;i++){
         if(array[i]==x){
             return true; cout<<x<<" is in the queue \n"; break; }
             else {
            return false; cout<<x<<" is not in the queue \n"; } 
         }
    } 

Ответы [ 2 ]

0 голосов
/ 14 марта 2020

Вы должны улучшить свои отступы, чтобы увидеть ход программы. Также вы должны знать, что что-либо после оператора return не будет выполнено, поскольку return «выходит» из функции. Как и другие, если проверка первого элемента не удалась, функция завершается с return false; Это означает, что никакие другие проверки не будут выполняться.

bool cqueue::search(int x)
{ //this is my class cqueue
    if(empty())
        cout<<"\n\n queue is empty\n";

    for(int i=0;i<size;i++)
    {
        if(array[i]==x)
        {
            return true; 
            cout<<x<<" is in the queue \n"; 
            break;
        }
        else
        {
            return false; 
            cout<<x<<" is not in the queue \n";
        }
    }
} 
0 голосов
/ 14 марта 2020

Может выполняться только ваш первый оператор cout, остальные не будут выполняться, потому что когда вы что-то возвращаете, это конец функции. Возможно, переместите операторы cout перед возвратом, и это должно сработать.

Кроме того, вы не должны возвращать false, если array [i]! = X, это только означает, что array [i] не тот элемент, которым вы являетесь находясь в поиске. Может быть, вы могли бы добавить логическую переменную isFound и установить ее в значение true, только если вы нашли значение. Если вы дошли до конца l oop и не нашли значение (isFound == false), верните false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...