Вписване в сайта



Опашка

Сряда, 24 Август 2011 10:01

опашка - естествени числа

Написана от 
Оценете
(4 гласа)

опашка - естествени числа

Да се състави програма, чрез която се въвеждат N броя естествени числа от интервала [1..101].
Броят на въведените числа не се знае предварително - определя се от потребителя.
Чрез използване на структура от тип опашка да се изведе въведената редица числа като:
а) първо се извеждат всички нечетни числа;
б) след тях се извеждат всички четни числа;
в) извеждането на числата съответства на реда на въвеждането им.
Пример: 11, 12, 15, 17, 19, 21, 23, 9, 10, 16, 18, 20
Изход: 11, 15, 17, 19, 21, 23, 9, 12, 10, 16, 18, 20

Решение

#include <iostream>
#include <ctime>
#include <queue>

using namespace std;

  queue<int> m_queue1,m_queue2,m_queue3;

void pylni_chetni( int chislo)
{  m_queue1.push(chislo);//postawq element w opashka
  }//void pylni_chetni w opashka

void pylni_nechetni( int chislo)
{  m_queue2.push(chislo);//postawq element w opashka
  }//void pylni_nechetni w opashka

void obedini_queue()
{ int chislo;
   while (!m_queue1.empty()) //samo chetni
   {chislo=m_queue1.front();
    m_queue1.pop();
    m_queue3.push(chislo);
   }
    while (!m_queue2.empty()) 
   {chislo=m_queue2.front();
    m_queue2.pop();
    m_queue3.push(chislo);
   }
}//void obedini_queue()

int main() 
{ int chislo,N,i;
  time_t t;//polzwa tekushoto wreme
   srand( time(&t));//inicializira generator na suchajni chisla


 cout<<"Da se systawi programa, chrez koqto se generirat N broq sluchajni \n";    
 cout<<"estestweni chisla ot interwala [1..101].Programata da izwede\n";
 cout<<"redica, w koqto pyrwo se izwevdat wsichki chetni chisla, a\n";
 cout<<"sled towa wsichki nechetni  chisla. Redyt na izwevdaneto\n";
 cout<<"syotwetstwa na reda na wywevdaneto. Da se realizira opashka.\n";
 cout<<"Broqt na chislata ne se znae predwaritelno. Toj se opredelq\n"; 
 cout<<"ot potrebitelq w procesa na wywevdaneto im\n";
 cout<<"Primer: 11, 12, 15, 17, 19, 21, 23, 9, 10, 16, 18, 20 \n";
 cout<<"Izhod: 11, 15, 17, 19, 21, 23, 9, 12, 10, 16, 18, 20 \n";
 cout<<"Wywedete broj chisla: ";cin>>N;
 cout<<"Generiram psewdosluchajni chisla:\n";
 for (i=0;i<N;i++)
  { chislo=1 + rand()%100;
     cout<<chislo<<"; ";
     if (chislo%2)  pylni_nechetni( chislo);
     else pylni_chetni( chislo);
   }
   cout<<endl;
   obedini_queue();
 cout<<"Izwevdam ot opashkata obedinenieto na dwete redici: \n"; 
    while (!m_queue3.empty())
   { chislo=m_queue3.front();//elementyt ot  na nachaloto na opashkata
     cout<<chislo <<"; ";//izwevda sydyrvanieto na nachaloto na opashkata
     m_queue3.pop();//maha element ot  na nachaloto na opashkata
    }
  cout<<endl;  
  system("pause");
  return 0;
}

Прочетена 3517 пъти Последно променена в Петък, 26 Август 2011 10:27
Още в тази категория: разлика между опашка и стек »