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

problem STOS, SPOJ

Object Storage Arubacloud
0 głosów
311 wizyt
pytanie zadane 24 maja 2020 w SPOJ przez szrek2002 Nowicjusz (120 p.)
zmienione kategorie 24 maja 2020 przez ScriptyChris

Witam, jak można zakomunikować programowi aby przy while (),kiedy string "we" jest pusty, zwrócił return(0)? próbowałem (tak jak jest w kodzie na dole) " while(!we.empty());", lecz nie przyniosło to skutków

 

#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>

using namespace std;
int tabl[10];
int ile=0,liczb;
string we;
int main()
{


    do {

//kod
}
   while (!we.empty());
   return 0;
}


Z góry dziękuje za pomoc

komentarz 24 maja 2020 przez Whistleroosh Maniak (56,980 p.)

Jeżeli chodzi Ci o to, że na wejściu masz nieokreśloną ilość danych i próbujesz pobierać to do stringa i sprawdzać czy jest pusty i wtedy kończyć program to to nie zadziała. Tu trzeba skorzystać z czegoś takiego:

while (cin >> we)
{
     //kod
}
komentarz 25 maja 2020 przez szrek2002 Nowicjusz (120 p.)
Niestety nadal nie działa:/ Jest opcja wysłania tutaj całego kodu (skoro i tak jest wadliwy)?
komentarz 25 maja 2020 przez Whistleroosh Maniak (56,980 p.)
Możesz wstawić go tutaj i postaram się znaleźć gdzie jest błąd.
komentarz 26 maja 2020 przez szrek2002 Nowicjusz (120 p.)
#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>

using namespace std;
int tabl[10];
int ile=0,liczb;
string we;
int main()
{
do
{ cin>>we;

    if (we=="+" && ile<=9)
   {
          cin>>liczb;
        tabl[ile]=liczb;
        cout<<":)"; cout<<endl;
        ile++;
                         }


 else if (we=="-")
   {
     tabl[ile-1]=tabl[ile];
   ile--;
      cout<<":)";cout<<endl;
                         }


else if (we=="+" && ile==10)
     {
         cin>>liczb;
     cout<<":(";cout<<endl;
                     }

} while (cin>>we);

    return 0;
}

komentarz 26 maja 2020 przez szrek2002 Nowicjusz (120 p.)
Sory że tak późno, lecz nie miałem dostępu do komputera
komentarz 26 maja 2020 przez Whistleroosh Maniak (56,980 p.)
#include <bits/stdc++.h>

using namespace std;

int tabl[10];
int ile = 0, liczb;
string we;

int main()
{
    while(cin >> we)
    {
        if (we == "+" && ile <= 9)
        {
            cin >> liczb;
            tabl[ile++] = liczb;
            cout << ":)";
            cout << endl;
        }

        else if (we == "+" && ile == 10)
        {
            cin >> liczb;
            cout << ":(";
            cout << endl;
        }

        else if (we == "-" && ile > 0)
        {
            cout << tabl[--ile];
            cout << endl;
        }

        else if(we == "-" && ile == 0)
        {
            cout << ":(";
            cout << endl;
        }

    }

    return 0;
}

Źle miałeś napisaną pętlę while i brakowało Ci kilku rzeczy w instrukcjach warunkowych

komentarz 27 maja 2020 przez szrek2002 Nowicjusz (120 p.)
Dzieki!

1 odpowiedź

0 głosów
odpowiedź 24 maja 2020 przez LukiLL Początkujący (270 p.)
Tutaj w Twoim przypadku return(0) jest poza Twoją pętlą już także on do niej się nie odnosi. Warunek prosty można dodać w do, if(we.empty()) return(0).

Podobne pytania

0 głosów
2 odpowiedzi 1,306 wizyt
pytanie zadane 20 maja 2019 w SPOJ przez kodowiec Początkujący (410 p.)
0 głosów
1 odpowiedź 222 wizyt
pytanie zadane 4 sierpnia 2020 w C i C++ przez Arek04 Użytkownik (700 p.)
0 głosów
1 odpowiedź 281 wizyt
pytanie zadane 30 stycznia 2021 w C i C++ przez Rainbow99 Początkujący (430 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...