Reklama
Pokazuje wyniki od 1 do 5 z 5

Temat: [C++] Wypelnianie tablicy losowymi wartosciami

  1. #1

    Data rejestracji
    2009
    Posty
    313
    Siła reputacji
    16

    Domyślny [C++] Wypelnianie tablicy losowymi wartosciami

    edit2#
    Jednak mam jeszcze 1 problem
    Otóż program się kompiluje, jednak wypełnia tablice takimi samymi wartościami.
    np. przy 1wszym uruchomieniu, każda wartość w tablicy to 811, przy drugim każda wartość to -981, itd
    A chodzi o to by program losował wartość pod każdy indeks inną, czyli np
    tab[0]=5, tab[1]=-983, tab[2]=12, itd

    Kod :
    void wypelnij ()
    	{
    		n = 20;
    		int * tab2 = new int [n];
    		int * pom;
    		for (int i = 0; i < n; i++)
    		{
    			srand (time(NULL));
    			tab2[i] = rand () % 20001 -10000;
    		}
    		pom = tab;
    		tab = tab2;
    		tab2 = NULL;
    		delete tab2;
    		delete pom;
    	}
    tutaj funkcja wypelniania tablicy... co z nia jest nie tak?
    Ostatnio zmieniony przez hefalump : 29-04-2014, 11:21

  2. #2
    konto usunięte

    Domyślny

    @hefalump
    srand (time(NULL)); poza petle.
    Ostatnio zmieniony przez szulak : 29-04-2014, 11:28

  3. #3

    Data rejestracji
    2009
    Posty
    313
    Siła reputacji
    16

    Domyślny

    kurcze działa, dzięki ;D

    a jeszcze 1 pytanie
    dodałem coś takiego


    i w main'ie przed wywołaniem funkcji wpisuje rozmiar tablicy.

    Kod :
    case 1:
    			int n;
    			cout<<"Podaj rozmiar tablicy"<<endl;
    			cin>>n;
    			tab.wypelnij(n);
    			break;

    klasa wyglada tak
    Kod :
    class tablica 
    {
    public:
    	int n;
    	int *tab;
    
    	tablica()
    	{
    		n =0;
    		tab = new int[n];
    	}
    	~tablica ()
    	{
    		delete tab;
    	}
    void wyswietl ()
    	{
    			for (int i = 0; i < n; i++)
    		{
    			cout<<"tab["<<i<<"]="<<tab[i]<<endl;
    		}
    		cout<<"\n";
    	}
    
    void wypelnij (int n)
    	{
    		srand (time(NULL));
    		int * tab2 = new int [n];
    		int * pom;
    		for (int i = 0; i < n; i++)
    		{
    			tab2[i] = rand () % 20001 -10000;
    		}
    		pom = tab;
    		tab = tab2;
    		tab2 = NULL;
    		delete tab2;
    		delete pom;
    	}
    }
    gdy w funkcji ustawię n na wartość np 20, to program tworzy tablice, potem moge ja wyswietlic i dziala. Gdy probuje sam wpisac rozmiar, program nic nie wyswietla...

  4. Reklama
  5. #4
    Avatar Kusterek
    Data rejestracji
    2013
    Położenie
    Warszawa
    Wiek
    32
    Posty
    1,710
    Siła reputacji
    14

    Domyślny

    to pokaz jak wczytujesz ten n od uzytkownika

    irc: freenode.net in #torgdevs

  6. #5
    konto usunięte

    Domyślny

    Kod :
    ~tablica ()
    {
        delete tab;
    }
    Powinno byc:

    Kod :
    ~tablica ()
    {
        delete[] tab;
    }
    Po drugie, popatrz dokladnie na ten kod:

    Kod :
    pom = tab;
    tab = tab2;
    tab2 = NULL;
    delete tab2;
    delete pom;

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Wypelnianie ankiety - 1 urządzenie pomoc
    Przez olejek92 w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 5
    Ostatni post: 01-02-2017, 21:54
  2. Odpowiedzi: 10
    Ostatni post: 21-01-2014, 21:19
  3. [C++] Tworzenie dynamicznej tablicy dwuwymiarowej w funkcji
    Przez Mistrzu dragon w dziale Programowanie
    Odpowiedzi: 2
    Ostatni post: 08-12-2013, 21:13
  4. Odpowiedzi: 7
    Ostatni post: 07-12-2013, 00:17
  5. Losowanie punktu(x,y) z tablicy -> C#
    Przez Johny Tran w dziale Programowanie
    Odpowiedzi: 2
    Ostatni post: 07-06-2013, 15:02

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •