Казвано ли е такова число?

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

По желание:

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

3 Responses to Казвано ли е такова число?

  1. sup3rEva каза:
    #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;
    }
  2. kaloyan каза:
    #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;
    }

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