Числата, по-големи от последното

Да се въведат в стек n числа и да се отпечатат тези, които са по-големи от последното.

Публикувано в 12в с етикети . Постоянна връзка.

One Response to Числата, по-големи от последното

  1. Данаил каза:

    А ето и решението, което включва и кода за примерна реализация на стек.

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    // максимален брой елементи в стека
    const int N=50;
    
    // указател към върха на стека
    int br = 0;
    
    // масив за съхранение на елементите на стека
    int s[N];
    
    // инициализиране на стека
    void init()
    {
        br=0;
    }
    
    // проверка дали стека е празен
    bool isEmpty() {
        return br==0;
    }
    
    // проверка дали стека е пълен
    bool isFull() {
        return br==N;
    }
    
    // запис на стойност в стека
    bool push(int X)
    {
        bool ok = !isFull();
        if (ok){
            s[br] = X;
            br++;
        }
        return ok;
    }
    
    // извличане на стойност от стека
    bool pop(int &X)
    {
        bool ok = !isEmpty();
        if (ok) {
            br--;
            X = s[br];
        }
        return ok;
    }
    
    // печат на стека
    void print() {
        cout<<"top: |"<<br<<"|  stack: |";
        for(int i=0;i<br;i++) cout<<s[i]<<'|';
        cout<<endl;
    }
    
    // да се въведат в стек n числа и да се отпечатат тези, 
    // които са по-големи от последното
    int main ( )
    {
      int n;
      cout<<"vavedete n:";
      cin>>n;
      // инициализираме стека
      init(); 
      print();
      // въвеждаме числата
      int chislo;
      for(int i=1; i<=n; i++) {
        cin>>chislo;
        push(chislo);
      }
      print();
      // прочитаме последното
      int posledno;
      pop(posledno);
      cout<<"Po-golemite ot "<<posledno<<" sa:\n";
      // прочитаме останалите
      for(int i=1; i<n; i++) {
        pop(chislo);
        if(chislo>posledno)
          cout<<chislo<<endl;
      }
      print();
    
      system("pause");
      return 0;
    }

Вашият коментар