1 / 6
Mar 2017

Ja mam problem z kompilacją:

include

include

using namespace std;
int rozmiar=0;
int dane[10];
void push()
{
if (rozmiar>=10)
{
cout << ":("<<endl;
}
else
{
rozmiar=rozmiar+1;
cin>>dane[rozmiar];
cout << ":)"<<endl;
}
}

void pop()
{
if (rozmiar>=1)
{
cout<<dane[rozmiar]<<endl;
rozmiar=rozmiar-1;
}
else
{
cout << ":("<<endl;
}
}

int main()
{
char g;
do
{
g=getch();
switch(g)
{
case '+':
cout<<"+"<<endl;
push();
break;
case '-':
cout<< "-"<<endl;
pop();
break;
}
} while((g=='+')||(g=='-'));
return 0;
}
czy ktoś mógłby mi pomóc?

Jestem na 99,99% pewien, że tak. Nie wiem jednak czy ta informacja jest Ci do czegoś przydatną :wink:

Gdy klikniesz sobie w ten 'błąd kompilacji', to będziesz sobie mogła zobaczyć szczegóły tego błędu, a w nich mniej więcej coś takiego:
error: ‘getch’ was not declared in this scope
g=getch();

Co oznacza, że nie zamieściłaś odpowiedniego nagłówka lub że nowy standard uważa tę funkcję za przestarzałą i kompilator nie ma ochoty z nią pracować.
Skoro piszesz w C++, to używaj raczej strumieni cin/cout zamiast starych funkcji z języka C. Praca ze strumieniami jest dużo wygodniejsza.

Czyli zamiast:
g=getch();
użyj po prostu:
cin >> g;

Piękne :slight_smile:, może wybitnym programistą nie będę, ale niewątpliwie obcowanie z forami programistycznymi nauczy mnie precyzyjnego formułowania myśli i nie zadawania zbędnych pytań.

Postąpiłam wg wskazówek i po raz pierwszy spotkałam się z problemem przekroczonego limitu czasu. Wnioskuję, że trzeba stosik napisać zgrabniej. Nie widzę sposobu na skrócenie switch (wymogi zadania), więc może poszukać szybszych pop() i push()?

Poradziłam :wink: