Ĺadny brzuch
Witam,
wszystko działa poprawnie poza faktem, że po wykonaniu pierwszego obiegu pętli while, mimo, że jest wczytywany znak "+", to program nie "wchodzi" w instrukcje zawarte w ifie (pobranie liczby całkowitej i uruchomienie z nią funkcji). Dlaczego tak się dzieje? Proszę o pomoc i serdecznie dziękuję z góry!
#include <cstdio> using namespace std; int stosik[10]; int ile=-1; void stos(char c, int p=0) { printf(" %d\n",ile); if(c=='-'&&ile>-1) { printf("%d\n",stosik[ile--]); } else if(c=='+'&&ile<10) { ++ile; stosik[ile]=p; } else printf(":(\n"); } int main() { char p; int k; while(scanf("%c\n",&p)==1) { if(p=='+') { scanf("%d",&k); stos(p,k); } else stos(p); } return 0; }
rozwiązanie analogiczne do zastosowanego w TYM temacie.
Użytkownik toma.sh edytował ten post 28 luty 2008, 00:22
Dziękuję, getchar pomógł :). Ale dziwi mnie, że wstawienie \n także i do scanf wewnątrz instrukcji warunkowej nic nie pomaga...
Użytkownik Grzese edytował ten post 28 luty 2008, 07:57
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
wszystko działa poprawnie poza faktem, że po wykonaniu pierwszego obiegu pętli while, mimo, że jest wczytywany znak "+", to program nie "wchodzi" w instrukcje zawarte w ifie (pobranie liczby całkowitej i uruchomienie z nią funkcji). Dlaczego tak się dzieje? Proszę o pomoc i serdecznie dziękuję z góry!
#include <cstdio> using namespace std; int stosik[10]; int ile=-1; void stos(char c, int p=0) { printf(" %d\n",ile); if(c=='-'&&ile>-1) { printf("%d\n",stosik[ile--]); } else if(c=='+'&&ile<10) { ++ile; stosik[ile]=p; } else printf(":(\n"); } int main() { char p; int k; while(scanf("%c\n",&p)==1) { if(p=='+') { scanf("%d",&k); stos(p,k); } else stos(p); } return 0; }
rozwiązanie analogiczne do zastosowanego w TYM temacie.
Użytkownik toma.sh edytował ten post 28 luty 2008, 00:22
Dziękuję, getchar pomógł :). Ale dziwi mnie, że wstawienie \n także i do scanf wewnątrz instrukcji warunkowej nic nie pomaga...
Użytkownik Grzese edytował ten post 28 luty 2008, 07:57