Brak błędów debugera, a program nadal nie działa.

0

Mam taki oto kodzik i problem polega na tym, że gdy ów kodzik się kompiluje to nie ma żadnych błędów, ale nie uruchamia się. U kolegi natomiast także zero błędów przy kompilacji, ale odpala się i crashuje się po odpaleniu. Jakby ktoś miał czas przejrzeć ten program i pomóc mi w rozwikłaniu zagadki (co tu nie działa?) to byłbym wdzięczny.

#include <iostream>
#include <string>
using namespace std;
int main()
{
    int liczba_godzin, klasa, godziny_tyg, x, y, e, r,d;
    string nauczyciel;
    string tydzien[x][y];

    cout<<"Nauczyciel:"<<endl;
    cin>>nauczyciel;
    cout<<"Liczba godzin dla tego nauczyciela:"<<endl;
    cin>>liczba_godzin;
    cout<<"Liczba lekcji w tygodniu:"<<endl;
    cin>>godziny_tyg;
    cout<<"Liczba godzin na dzien:"<<endl;
    cin>>e;

    e:
    if (liczba_godzin!=0) 
        {
           d:
           if (godziny_tyg!=0)
               {
                  ra:            
                  r=rand()%e;

                  if (r<=godziny_tyg)
                     {
                        liczba_godzin-r;
                        godziny_tyg-r;
                        a:
                        if (tydzien[x][y]=="") 
                        {
                           tydzien[x][y]+nauczyciel;
                           r-1;
                           if (r==0) 
                           {
                                goto d;
                           }
                           else 
                           {
                                goto a;
                           }                    
                        } 

                        else 
                        {
                          y++;
                          if (y=8)
                          {
                            x++;
                            y=1;
                            if (x>=5) {
                                      cout<<"wszystkie dni zajete"<<endl;
                                      }
                            else 
                            {
                                 goto a;
                            }
                          }
                        }

                     }                     
                     else 
                     {
                          goto ra;                
                     }
               }                       
               else 
               {
                    d++; 
                    godziny_tyg=7; 
                    goto e; 
               }                                        

        }
        else {
             cout<<"nauczyciel nie ma juz godzin";
             }

    for (x=1; x<6; x++)
      {
         for (y=1; y<8; y++)
           cout<<tydzien[x][y];       
              }
    system ("pause>>null");        
    return 0;

}

Z pozdrowieniami S3t.h
PS
Tak wiem jestem zły/noob/etc bo użyłem goto, więc jak to zadziała to idę się pociąć.
Tak wiem program jest cienki, ale dopiero się uczę i to w sumie jest mój pierwszy program "nie przepisany".

0

Co to w ogóle za sposób robienia tablicy. Te x i y to z kosmosu bierzesz?

0

GOTO sie nie stosuje. Rozumiesz? Nie stosuje się poza asemblerem.

Polecam jakąś książkę, np. Symfonię C++ Standard Grębosza, bo to co napisałeś to nawet nie można nazwać tragedią. To jest coś gorszego niż tragedia.

0

string tydzien[x][y]; głównie dlatego crashuje że ta linijka jest bezsensu, new i delete poczytaj.
usuń wszędzie "goto" bo to zło które bardzo rzadko się stosuje w programowaniu.
Polecam na 1 dzień kurs z programowania C++ a na 2 dzień zabranie się do programu, może coś wyskubiesz ale najpierw od początku minimum 1 dzień (5-7 h) poczytaj o programowaniu

0

Ok, dzięki trochę jeszcze poczytam. X i Y jest zadeklarowane więc przyjmują (przynajmniej tak myślałem) automatycznie wartość 0.

0

Czyli chciałeś stworzyć dwu-wymiarową, zero-elementową tablicę?

Zaopatrz się w porządną książkę o podstawach.

0

Aaa... teraz zrozumiałem o co ci chodziło, fakt jest źle. A znasz/znacie może coś godnego plecenia o budowaniu schematów blokowych i algorytmice ewentualnie o c++ oprócz symfonii bo już mam ?

0

I ty po czytaniu Symfonii piszesz takie potwory? To znaczy że powinieneś zająć się czymś innym. Sorry batory.

0

Oj już nie bądź taki hej do przodu . -.- Napisałem w pierwszym poście, że to mój pierwszy program, a symfonie mam, ale jeszcze nie zdążyłem jej otworzyć. ;]

0

To na przyszłość, najpierw ją otwórz, poczytaj, potestuj, a potem pisz posty na forum. Jak ja sie uczyłem programować to nie napieprzałem postów jak głupi, tylko maltretowałem google, na 99,9% pytań początkujących jest tam odpowiedź.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0