Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Prośba o pomoc program z algorytmów C++, zadanie na stosach.

Ostatnio zmodyfikowano 2022-04-04 19:15
Autor Wiadomość
grigoriii
Temat założony przez niniejszego użytkownika
Prośba o pomoc program z algorytmów C++, zadanie na stosach.
» 2022-03-30 23:15:06
Hej,
próbuję rozwiązać zadanie z algorytmów z języka C++, w szkopule uzyskuje 50%, i nie mogę zrozumieć dlaczego nie działa program skoro przy kompilacji i wprowadzeniu danych z zadania wynik jest ok.

Link do zadania
Mój kod:

C/C++
#include <iostream>
using namespace std;
const int LIMIT = 35;
struct Stack
{
   
int tab[ LIMIT ];
   
int top;
};
void create( Stack & S )
{
   
S.top = - 1;
}
void push( Stack & S, int x )
{
    {
       
S.top = S.top + 1;
       
S.tab[ S.top ] = x;
   
}
}
int top( Stack S )
{
   
return S.tab[ S.top ];
}
void pop( Stack & S )
{
    {
       
S.top--;
   
}
}
int main()
{
   
Stack plytkie;
   
create( plytkie );
   
Stack glebokie;
   
create( glebokie );
   
push( plytkie, 0 );
   
push( glebokie, 0 );
   
int notes = 0;;
   
   
string slowo, rodzaj;
   
int ilosc_slow, nrid;
   
cin >> ilosc_slow;
   
int * t = new int[ ilosc_slow ];
   
for( int i = 0; i < ilosc_slow; i++ )
   
{
       
cin >> slowo;
       
if( slowo == "dziekuje" )
       
{
           
cin >> rodzaj;
           
cin >> nrid;
           
if( rodzaj == "plytki" )
           
{
               
push( plytkie, nrid );
           
}
           
else if( rodzaj == "gleboki" )
           
{
               
push( glebokie, nrid );
           
}
        }
       
else if( slowo == "prosze" )
       
{
           
cin >> rodzaj;
           
if( rodzaj == "plytki" )
           
{
               
t[ notes ] = top( plytkie );
               
pop( plytkie );
               
notes++;
           
}
           
else if( rodzaj == "gleboki" )
           
{
               
t[ notes ] = top( glebokie );
               
pop( glebokie );
               
notes++;
           
}
        }
    }
   
for( int i = 0; i < notes; i++ )
   
{
       
if( t[ i ] != 0 )
           
 cout << t[ i ] << endl;
       
   
}
   
return 0;
}
P-179354
pekfos
» 2022-03-31 06:55:09
Treść zadania nie daje żadnych podstaw na przyjęcie limitu 35 elementów na stosie.
P-179355
grigoriii
Temat założony przez niniejszego użytkownika
» 2022-04-04 19:15:55
Dzięki za odpowiedź, dokładnie o to chodziło, po przeanalizowaniu treści zadania też to zauważyłem. Taki szczegół a straciłem na to trochę czasu.
Jeszcze raz dzięki.
P-179360
« 1 »
  Strona 1 z 1