Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

problem z tablicami

Ostatnio zmodyfikowano 2008-06-26 17:51
Autor Wiadomość
kiniro
Temat założony przez niniejszego użytkownika
problem z tablicami
» 2008-06-25 12:16:06
Mam mały kłopot z tablicą. Wyskakuje mi typowy błąd xp w tym kodzie.
C/C++
#include <iostream>
#include <conio.h>

using namespace std;
main()
{
    int r, k;
    int tablica[ r ][ k ];
    cout << "program wypisuje trojkat pascala\n";
    cout << "podaj i: ";
    cin >> r;
    getch();
    return 0;
}

Zrobiłem test tablicy
C/C++
#include <iostream>
#include <conio.h>

using namespace std;
main()
{
    int n, tablica[ n ];
    cout << "ile komorek tablicy?" << endl;
    cin >> n;
    for( int i = 1; i <= n; i++ )
    {
        cout << "a[" << i << "]=";
        cin >> tablica[ i ];
    }
    cout << endl;
    for( int i = 1; i <= n; i++ )
    {
        cout << "a[" << i << "]=" << tablica[ i ] << endl;
    }
    getch();
    return 0;
}
i działa bez zarzutu. Czemu jeśli staram się zadeklarować tablicę dwuwymiarową, wówczas kompilator przyjmuje to ale program się wysypuje? To samo się dzieje gdy zadeklarowałem dwie tablice jednowymiarowe.
Z góry dziękuję za pomoc i pozdrawiam
Kiniro
P-877
DejaVu
» 2008-06-25 13:00:25
Jeśli chcesz utworzyć tablicę o jakimś rozmiarze musisz to zrobić tak:
C/C++
int n;
cin >> n;
int tablica[ n ];
Tak jak Ty to robisz jest to błęde, ponieważ wartości zmiennych nie są zainicjowane -> czyli wartości są losowe (zazwyczaj bardzo duże). W przypadku tablicy dwuwymiarowej, wylosowanie dwóch dużych liczb oznacza w efekcie pomnożenie obu tych liczb. W konsekwencji może się okazać że próbujesz utworzyć tablicę o rozmiarach większych niż zasoby Twojego komputera, stąd też i program się wysypuje.
P-878
kiniro
Temat założony przez niniejszego użytkownika
działa
» 2008-06-25 13:54:48
Dzięki serdeczne. Działa bez zarzutu. Za kilka dni pochwalę się na forum trójkątem Pascala.

P.S. Tą uwagę co mi Pan podał też mógłby Pan dorzucić do kursu.
P-879
DejaVu
» 2008-06-26 17:51:45
Narazie jestem zajęty generalną przebudową i modernizacją portalu :) Jak ją skończę, zajmę się pisaniem dalszej części kursu i poprawianiem obecnych (w tym będę się starał uwzględnić problemy, które przedstawili użytkownicy portalu). Być może do każdego z rozdziałów dorobię coś takiego jak 'powiązane tematy na forum' i te rozwiązane problemy będą dowiązywane do lekcji. Pomysłów mam dużo na to by zrobić fajny i użyteczny portal, ale czas jest nieubłagalny :)

/edit: zamykam temat, skoro jest rozwiązany :)
P-893
« 1 »
  Strona 1 z 1