Числата в диапазона

Да се напише програма, която позволява да се въведат N на брой числа и след това пита за диапазон и  отпечатва онези числа от въведените, които са в диапазона.

По желание:

  • Да се реши задачата в случая на въвеждане на числа до въвеждане на 0.
  • Да може да се въвежда диапазон (и съответно да се извеждат числата, които са в него) повече от веднъж.
Публикувано в 12в с етикети . Постоянна връзка.

One Response to Числата в диапазона

  1. kaloyan каза:

    Решението е от Калоян:

    #include <cstdlib>
    #include <iomanip>
    #include <iostream>
      
    using namespace std;
      
    using namespace std;
      
    // максимален брой елементи в опашката
    const int N=5;
      
    // указател към върха на опашката
    int head = 0;
    // указател към края на опашката
    int tail = 0;
      
    // масив за съхранение на елементите на опашката
    int s[N];
      
    // инициализиране на опашката
    void init()
    {
        head=0;
        tail=0;
        for(int i=0;i<=N;i++) s[i]=0;
    }
      
    // проверка дали опашката е празна
    bool isEmpty() {
        return head==tail;
    }
      
    // проверка дали опашката е пълна
    bool isFull() {
        return ((tail+1)%N)==head;
    }
      
    // запис на стойност в опашката
    bool push(int X)
    {
        bool ok = !isFull();
        if (ok){
            s[tail] = X;
            tail++;
            tail%=N;
        }
        return ok;
    }
      
    // извличане на стойност от опашката
    bool pop(int &X)
    {
        bool ok = !isEmpty();
        if (ok) {
            X = s[head];
            head++;
            head%=N;
        }
        return ok;
    }
      
    int main ( ) {
    // инициализираме опашката
    init();
    int n, ch, min, max;
    cout<<"Broi chisla: ";
    cin>>n;
    for(int i=0; i<n; i++){
    	cin>>ch;
    	push(ch);
    }
    cout<<"Vavedete diapazon: ";
    cin>>min>>max;
    cout<<"Chisla v diapazona:"<<endl;
    while(!isEmpty()){
    	pop(ch);
    	if((ch>=min) && (ch<=max)) cout<<ch<<endl;
    }
    
    cout<<endl; 
    return 0;
    }

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