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

Wpisywanie losowych liczb do tablicy

Ostatnio zmodyfikowano 2012-09-29 14:00
Autor Wiadomość
DanielSC
Temat założony przez niniejszego użytkownika
Wpisywanie losowych liczb do tablicy
» 2012-09-29 13:27:28
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    int ile = 999;
    int losuj[ ile ];
    losuj[ ile ] =(( rand() % 6 ) + 4 );
   
    do
    {
        cout << losuj[ ile ] << endl;
        ile--;
    } while( ile > 0 );
   
    return 0;
}
Chciałbym  się was spytać czemu wpisuje mi takie liczby jakie wypisuje :)
P-65723
starter
» 2012-09-29 13:32:01
losuj[ ile ] =(( rand() % 6 ) + 4 );
w tym momencie wychodzisz poza obszar tablicy
P-65724
cyklopek11
» 2012-09-29 13:41:54
C/C++
losuj[ ile ] =(( rand() % 6 ) + 4 );
Twoim zamiarem było wpisać 999 losowych liczb do tablicy losuj[ile]. Ty wpisałeś tylko jedną liczbę (brak pętli) i to poza tablicę. Tablica losuj[ile] nie posiada indeksu ile (tylko ile-1). To co Ci wypisało to "śmieci" z historii użycia pamięci na Twoim komputerze. Do tego nie zainicjowałeś ziarna dla funkcji rand(). Powinieneś zrobić to np. tak:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
    srand( time( NULL ) ); // nie zainicjowałeś ziarna do rand()
    const int ile = 999; // ISO C++ forbids variable length array 'losuj'
    int losuj[ ile ];
    for( int i = 0; i < ile; i++ )
    {
        losuj[ i ] =(( rand() % 6 ) + 4 );
    }
   
    for( int j = 0; j < ile; j++ )
    {
        cout << losuj[ j ] << endl;
    }
   
   
   
    return 0;
}

Starter mnie wyprzedził :-)
P-65725
DanielSC
Temat założony przez niniejszego użytkownika
» 2012-09-29 14:00:56
Aha dzieki.
P-65726
« 1 »
  Strona 1 z 1