• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SPOJ-STOS-BŁĘDNA ODPOWIEDŹ.

Object Storage Arubacloud
0 głosów
526 wizyt
pytanie zadane 9 kwietnia 2020 w C i C++ przez Hodan Nowicjusz (190 p.)

Witam, zrobiłem zadanie pt. "Stos" i wyświetla mi błędną odpowiedź, a mam wrażenie że wszystko jest jak należy, chyba że błędem jest gdy wpisuje tam ostatnią liczbę którą mam dodać czyli mam napisać "+" i później "1" to po zaakceptowaniu "+" enterem wyświetla się ":(" przed wpisaniem "1". Ale mogę wpisać "+1"razem i wtedy się minka wyświetla po 1.
Nie wiem, czy to przez to i nie mam pomysłu jak to naprawić, miałem to samo napisane z tym że wybór był getchar(),

ale miałem błąd kompilacji, i przeczytałem gdzieś żeby usunąć bibliotekę conio.h.

Proszę o udzielenie wskazówki, z góry dziękuje za pomoc.

#include <iostream>
using namespace std;
int ile;
int *dane;
int rozmiar;
void push()
{
    if(rozmiar>=ile)
     cout<< ":("<<endl;
    else
    {
    rozmiar= rozmiar+1;
    cin>>dane[rozmiar];
    cout<<":)"<<endl;
    }
}
void pop()
{
    if(rozmiar>0)
    {
        cout<< dane[rozmiar]<<endl;
        rozmiar=rozmiar-1;
    }
    else
        cout<<":("<<endl;
    }
int main()
{
    cin>> ile;
    dane =new int [ile];
    char wybor;
    rozmiar=0;
    while(wybor!=ile)
    {
    cin>>wybor;
    switch(wybor)
    {
        case '+':
        push();
        break;
        case '-':
        pop();
        break;

    }
    }

    delete [] dane;
    return 0;
}

 

komentarz 9 kwietnia 2020 przez Whistleroosh Maniak (56,980 p.)

W zdaniu powiedziane jest, że na wejście podana jest nieokreślona liczba zestawów danych, więc niepotrzebnie wczytujesz wartość do zmiennej ile. No i stos powinien być symulowany na tablicy rozmiaru 10.

komentarz 9 kwietnia 2020 przez Hodan Nowicjusz (190 p.)

Zrobiłem tak jak mówiłeś, dalej nie przyjmuje zadania, wydaje mi się że problemem jest tak jak wspominałem minka ":(" która wyświetla się przed wpisaniem "1" . Próbowałem kombinować, zamieniać ale nie działa ;/

#include <iostream>
using namespace std;
int dane[10];
int rozmiar;
void push()
{
    if(rozmiar>=10)
        cout<<":(";


      else
        {
         cin>>dane[rozmiar];
         rozmiar=rozmiar+1;
        cout<<":)"<<endl;

        }
}
void pop()
{
    if(rozmiar>=1)
    {

        cout<<rozmiar[dane]<<endl;
         rozmiar=rozmiar-1;

    }
    else
    {
        cout<< ":("<<endl;
    }
}
int main()
{
int ile;
cin>>ile;
while(ile--)
{
    char wybor;
    rozmiar=0;
    while(wybor!=10)
    {
        cin>>wybor;
        switch(wybor)
          {
          case '+':
            push();
          break;
          case '-':
            pop();
          break;
          }
    }
}
    return 0;
}

 

komentarz 9 kwietnia 2020 przez Whistleroosh Maniak (56,980 p.)

Oj znowu wczytujesz wartość do zmiennej ile. W zadaniu nie ma mowy o takiej wartości. Dostaniesz po prostu nieokreśloną liczbę poleceń i musisz je wykonać. To co robi się w przypadkach gdy nie ma z góry narzuconej ilości zapytań to piszesz:

while(cin >> wybor)
{
      switch(wybor)
      {...}
}

A co do tego wypisywania ":(" przed wczytaniem wartości to nie ma się co martwić, gdyż dla SPOJa nie robi to większej różnicy

komentarz 9 kwietnia 2020 przez Hodan Nowicjusz (190 p.)
Bardzo dziękuje za pomoc.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 282 wizyt
0 głosów
1 odpowiedź 469 wizyt
pytanie zadane 25 stycznia 2017 w C i C++ przez Dawid Ramone Nowicjusz (120 p.)
0 głosów
1 odpowiedź 478 wizyt

92,620 zapytań

141,474 odpowiedzi

319,813 komentarzy

62,003 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...