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

Problem dotyczący zadania ze strony Szkopul C++ "Bar Apis".

Object Storage Arubacloud
0 głosów
1,651 wizyt
pytanie zadane 25 września 2017 w C i C++ przez Kenzy Obywatel (1,160 p.)
edycja 25 września 2017 przez Kenzy

Witam. Mam problem, próbuję zrobić właśnie zadanie pt:"Bar Apis" 

https://zapodaj.net/1aac2b258539e.png.html

Program starałem się napisać tak aby każdy mógł zrozumieć o co chodzi, jeśli chodzi o rozmiary tablic to kierowałem się podanymi w zadaniu zakresami, nie wiem czy jest inny sposób aby to zrobić na tym poziomie zaznajomienia z programowaniem. Po wpisaniu przykładu z zadania pojawiają się jakieś kosmiczne liczby. 

#include <iostream>

using namespace std;

int main()
{
    string dziekuje_prosze,gleboki_plytki;
    int ilosc_slow,id,licznik_plytkie=0,licznik_glebokie=0,licznik_notesu=0;
    int glebokie[1000],plytkie[1000],notes[1000];
    cin>>ilosc_slow;

    for(int i=1;i<ilosc_slow+1;i++)
    {
        cin>>dziekuje_prosze>>gleboki_plytki>>id;
        if(dziekuje_prosze=="dziekuje")
        {
            if(gleboki_plytki=="plytki")
            {
               plytkie[licznik_plytkie]=id;
               licznik_plytkie++;
            }
            else if(gleboki_plytki=="gleboki")
            {
                glebokie[licznik_glebokie]=id;
                licznik_glebokie++;
            }
        }
        if(dziekuje_prosze=="prosze")
        {
            if(gleboki_plytki=="plytki")
            {
                licznik_plytkie--;
                plytkie[licznik_plytkie]=0;
                notes[licznik_notesu]=id;
                licznik_notesu++;
            }
            else if(gleboki_plytki=="gleboki")
            {
                licznik_glebokie--;
                glebokie[licznik_glebokie]=0;
                notes[licznik_notesu]=id;
                licznik_notesu++;
            }

        }

    }
    for(int i=0;i<licznik_notesu+1;i++)
        {
            cout<<notes[i];
        }

    return 0;
}

 

komentarz 25 września 2017 przez Szahid Pasjonat (20,930 p.)
link nie działa
komentarz 25 września 2017 przez Kenzy Obywatel (1,160 p.)

2 odpowiedzi

0 głosów
odpowiedź 25 września 2017 przez Sic Dyskutant (8,510 p.)
Jakie są wytyczne do programu ?
komentarz 25 września 2017 przez Kenzy Obywatel (1,160 p.)

Wszystko jest w linku :)  https://zapodaj.net/1aac2b258539e.png.html

komentarz 25 września 2017 przez Kenzy Obywatel (1,160 p.)
No niestety, ten sam błąd. Ogólnie dla przykładu podanego w zadaniu po wpisaniu pierwszych pięciu linijek program wypisuje "00000".
0 głosów
odpowiedź 26 września 2017 przez Balbi Nowicjusz (180 p.)

Witam 

Jestem coderem laikiem ale dało mi się wychwycić parę błędów główny to linia 

cin>>dziekuje_prosze>>gleboki_plytki>>id;

za każdym razem czyta 3 dane (string string int) natomiast w danych wejściowych mamy dwa warianty (string string int) oraz (string string). Zrobiłem też trochę kosmetyki. Moja wesoła twórczość daje wyniki takie jak w przykładzie.

#include <iostream>
using namespace std;

int main(){

    string dziekuje_prosze,gleboki_plytki;
    int ilosc_slow,id,licznik_plytkie=0,licznik_glebokie=0,licznik_notesu=0;
    int glebokie[1000],plytkie[1000],notes[1000];

    cin>>ilosc_slow; //tak naprawde to linii;

    //kosmetyka w warunku petli <ilosc_slow a <=ilosc_slow+1 to to samo;
    for(int i=1;i<=ilosc_slow;i++){

    cin >>dziekuje_prosze;

    //wczytanie danych w zależności od wariantu prosze/dziekuje;

    if(dziekuje_prosze=="dziekuje"){
      cin >> gleboki_plytki;
      cin >> id;
    }else{
      cin >> gleboki_plytki;
    }

    //tutaj bez zmian;
     if(dziekuje_prosze=="dziekuje")
      {
        if(gleboki_plytki=="plytki")
        {
           plytkie[licznik_plytkie]=id;
           licznik_plytkie++;
        }
        else if(gleboki_plytki=="gleboki")
        {
            glebokie[licznik_glebokie]=id;
            licznik_glebokie++;
        }
      }

      //tutaj zmiany nie uzywam id bo go nie czytam ale nr id pozyskuje z "stotu talerzy" gdzie zostal wczesniej odlozony

        if(dziekuje_prosze=="prosze")
        {
            if(gleboki_plytki=="plytki")
            {
                licznik_plytkie--;
                notes[licznik_notesu]=plytkie[licznik_plytkie];
                licznik_notesu++;
            }
            else if(gleboki_plytki=="gleboki")
            {
                licznik_glebokie--;
                notes[licznik_notesu]=glebokie[licznik_glebokie];
                licznik_notesu++;
            }

        }
    }
    //zmniejszenie o jeden warunku w petli bo czytal o jedna "kartke" za daleko;
    for(int i=0;i<licznik_notesu;i++)
    {
        cout<<notes[i] <<std::endl;
    }
  return 0;
}


 

 

komentarz 26 września 2017 przez Kenzy Obywatel (1,160 p.)
Błędy już zostały wychwycone, poprawione a ocenka złapana. Mimo to dziękuję bardzo za pomoc :)
komentarz 26 września 2017 przez niezalogowany

Udało Ci się to zauważyć? Nieźle! Wczytywanie wartości można by zrobić krócej:

        cin >> dziekuje_prosze;
		cin >> gleboki_plytki;

		if (dziekuje_prosze == "dziekuje")
		{
			cin >> id;
		}

Podobne pytania

0 głosów
1 odpowiedź 136 wizyt
pytanie zadane 15 lutego 2023 w C i C++ przez polandonion Mądrala (7,040 p.)
0 głosów
1 odpowiedź 361 wizyt
pytanie zadane 22 grudnia 2021 w Algorytmy przez Hans Nowicjusz (150 p.)
0 głosów
3 odpowiedzi 662 wizyt
pytanie zadane 6 października 2021 w C i C++ przez polandonion Mądrala (7,040 p.)

92,555 zapytań

141,403 odpowiedzi

319,559 komentarzy

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

...