Błąd programu po uruchomieniu kodu – petla się nie kończy

0
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    int ile;
    int opcje[0];
    srand( time( 0 ) );

    //cin>>ile;

    for(int x=0;x<9;x++)
    {opcje[x]=rand()%2;
    cout<<opcje[0]<<endl;
    }

}


#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    int ile;
    int opcje[0];
    srand( time( 0 ) );

    //cin>>ile;

    for(int x=0;x<9;x++)
    {opcje[0]=rand()%2;
    cout<<opcje[0]<<endl;
    }

}

Nie rozumiem co powoduje błąd w nr.1 oraz dlaczego ta petla leci w nieskonczonosc w nr2.

0
Wesoły Ogrodnik napisał(a):

Nie rozumiem co powoduje błąd w nr.1 […]

Może byś tak podał treść błędu?

0

wyskakuje informacja ze przeciazony, program zamyka sie sam.
a w pkt.2 nie mam pojecia czemu to w nieskonczonosc leci.

Dziękuję za odp

1

Masz tablice które nie mają żadnego miejsca na cokolwiek.
Zrób

int opcje[9]; // 9 intów, 1 int to index 0.
0

Atmal. Serdecznie dziękuję.

0
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    int ile;
    int opcje[ile];
    srand( time( 0 ) );

    cin>>ile;

    for(int x=0;x<9;x++)
    {opcje[0]=rand()%2;
    cout<<opcje[0]<<endl;
    }

}



A dlaczego program zawieszsza się kiedy to mam podać ilość zmiennych w tablicy?

0

Bo najpierw tworzysz tablicę z x miejscami a potem dopiero mówisz co to jest to x.

int ile; // Nie wiadomo jaka wartość
int opcje[ile]; // No właśnie - ile?
// Dopiero potem
cin >> ile; // Ale to już za późno

Zrób cin przed stworzeniem tablicy.

0

Dziękuję Panie Atmal :), i Panom poddającym komentarz w wątpliwość również.

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