Да се напише програма, която позволява да се въведат N на брой числа и после пита за число и отпечатва „казвано е вече“, ако вече е въвеждано преди това.
По желание:
- Ако числото не е въвеждано дотогава, да изведе „ново число“
- Да позволи проверката да се прави за повече от едно числа (тоест например да въвеждаме числа до въвеждане на 0 и за всяко от тях да казваме имало ли го е в опашката или не).


#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, ch1; cout<<"Broi chisla: "; cin>>n; for(int i=0; i<n; i++){ cin>>ch; push(ch); } cout<<"Za koe chislo da proverq? "; cin>>ch1; while(!isEmpty()){ pop(ch); if(ch1==ch) { cout<<"Kazano e veche!"<<endl; break; } } cout<<endl; return 0; }#include <cstdlib> #include <iomanip> #include <iostream> using namespace std; using namespace std; // максимален брой елементи в опашката const int N=50; // указател към върха на опашката 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, ch1; cout<<"Broi chisla: "; cin>>n; for(int i=0; i<n; i++){ cin>>ch; push(ch); } do{ cout<<"Za koe chislo da proverq? "; cin>>ch1; bool kazvano=false; if(ch1==0) break; else{ for(int i=0; i<n; i++){ pop(ch); push(ch); if(ch==ch1){ cout<<"Kavano e!"<<endl; kazvano=true; break; } } if(!kazvano) cout<<"Ne e kazvano!"<<endl; } } while(true); cout<<endl; return 0; }Добре, вярно! Пробвай и следващите задачи за опашки…