Pytanie

Programowanie w języku C i językach pochodnych, jak C++, C#
Hash
Posty: 1
Rejestracja: 26 kwie 2015, 23:48

Pytanie

Post autor: Hash » 27 kwie 2015, 00:01

Czy ktoś mógłby mi wytłumaczyć dlaczego ten program wypisuje tylko raz i się kończy przy wpisaniu danych:
5
10 20 30 40 50
10
M
R 4 3
R 3 2
M
R 4 1
R 2 5
R 3 2
M
M
M
?
Oto program:
void wczyt()
{
cin >> n;
for(int i=1;i<=n;i++)
{
cin >> a;
kolejka.push(make_pair(a,i));
}
}
int main()
{
wczyt();
cin >> m;
for(int j=0;j<m;j++)
{
znak=getch();
if(znak==82)
{
cin >> nr >> il;
tab[nr]=il;
}
if(znak==77)
{
int spr=0;
do{
para=kolejka.top();
x=para.first;
y=para.second;
if(tab[y]==0)
{
cout << y << " ";
spr=1;
}
else
{
x=x-tab[y];
tab[y]=0;
kolejka.push(make_pair(x,y));
}
}while(spr==0);
}
}
Z góry bardzo dziękuję.