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

Problem z programem pisanym w języku C++

Object Storage Arubacloud
0 głosów
440 wizyt
pytanie zadane 7 stycznia 2017 w C i C++ przez Michał Smorągiewicz Nowicjusz (120 p.)

Witam,

Mam problem z programem pisanym na olimpiadę. Wszystko bez problemu się kompiluje, jednak żadna z pętli for nie działa poprawnie. Po wpisaniu pierwszych dwóch zmiennych program od razu przeskakuje na koniec. Jednocześnie chciałbym się dowiedzieć czy wszystko w pętli switch case jest w porządku.

Część treści tego zadania:

"Janusz zbudował automatycznego kuglarza: urzadzenie symulujace gre w piec kubków.
Grazyna postanowiła zmierzyc sie z maszyna swojego kolegi. Na poczatku kubki zostaja
ustawione w rzedzie na pozycjach ponumerowanych od 1 do 5. Pod pierwszym
kubkiem zostaje ukryty diament. Nastepnie automat wykonuje zakodowana sekwencje
ruchów, polegajacych na zamianie miejscami dwóch kubków. Mozliwe jest dziesiec typów
ruchów, które zostały opisane w tabelce."

 

#include <iostream>

using namespace std;

int main()
{
    int n;
    cin >> n;
    int typ[n], ile[n];
    for (int i=0; i<n; i++)
    {
        cin >>typ[i]>> ile[i];
    }
    int pom=1;
    for (int i=0; i<n; i++)
    {
        if (ile[i]%2==0) continue;
        else
        {
            switch (typ[i])
                {
                    case 'A':
                        pom=2;
                    break;
                    case 'B':
                        {if (pom==1) pom=3;
                        else break;}
                    case 'C':
                        {if (pom==1) pom=4;
                        else break;}
                     case 'D':
                        {if (pom==1) pom=5;
                        else break;}
                     case 'E':
                        {if (pom==2) pom=3;
                        else break;}
                     case 'F':
                        {if (pom==2) pom=4;
                        else break;}
                     case 'G':
                        {if (pom==2) pom=5;
                        else break;}
                     case 'H':
                        {if (pom==3) pom=4;
                        else break;}
                     case 'I':
                        {if (pom==3) pom=5;
                        else break;}
                     case 'J':
                        {if (pom==4) pom=5;
                        else break;}
                     default:
                        break;
                }
        }
    }

        cout<<pom;
}

Z góry dziękuję za odpowiedź. smiley

2 odpowiedzi

+2 głosów
odpowiedź 7 stycznia 2017 przez playerony Pasjonat (15,240 p.)
int typ[n]; -> char typ[n] No w case masz przecież char, a tablica to int.
0 głosów
odpowiedź 7 stycznia 2017 przez Gracjan Pasik Obywatel (1,810 p.)
U mnie działa poprawnie, możliwe że masz stary standard C++ i nie ma u ciebie dynamicznego alokowania pamięci w ten sposób i musisz to zrobić starą metodą (ze wskaźnikiem).
komentarz 7 stycznia 2017 przez unknown Nałogowiec (39,560 p.)
VLA nie jest w standardzie C++. To rozszerzenie gcc

Podobne pytania

0 głosów
0 odpowiedzi 144 wizyt
pytanie zadane 14 maja 2018 w HTML i CSS przez jaku9987 Nowicjusz (180 p.)
0 głosów
1 odpowiedź 248 wizyt
pytanie zadane 2 grudnia 2020 w C i C++ przez Adamek512 Nowicjusz (140 p.)
0 głosów
1 odpowiedź 294 wizyt
pytanie zadane 27 listopada 2020 w C i C++ przez Bloodis Nowicjusz (200 p.)

92,615 zapytań

141,465 odpowiedzi

319,780 komentarzy

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

...