dott94 Temat założony przez niniejszego użytkownika |
losowanie elementu tablicy » 2013-12-07 16:00:22 tak jak w temacie, chcę wylosować element tablicy. ktoś podpowiedział mi, żeby zrobić to tak: #include<iostream> #include<fstream> #include<cstdlib> #include<iomanip> using namespace std;
int main() { int tab[ 20 ] = { 25, 275, 400, 325, 100, - 1, 200, 50, 350, - 2, 175, 475, 300, 125, 75, 500, 425, 225, 375, 0 }; int x; x = srand( tab.size() ); cout << setw( 5 ) << x << endl; }
no i pojawia się błąd: C:\Users\...\projekt\test.cpp:14:18: error: request for member 'size' in 'tab', which is of non-class type 'int [20]' co jest nie tak? |
|
Monika90 |
» 2013-12-07 16:06:03 Tablice wbudowane nie mają funkcji składowej size(), użyj std::array<int, 20> - ona ma size(). Poza tym srand nie losuje liczby tylko inicjalizuje generator. |
|
dott94 Temat założony przez niniejszego użytkownika |
» 2013-12-07 16:28:52 a co zrobić, jeśli w tym programie nie mogę posłużyć się std::array (takie mam wytyczne dotyczące projektu) ? |
|
pekfos |
» 2013-12-07 16:31:43 Dla takiej tablicy możesz użyć sizeof (zwraca rozmiar w bajtach, a nie elementach). |
|
Monika90 |
» 2013-12-07 16:33:58 Albo zwyczajnie zdefiniuj sobie stałą: const std::size_t rozmiar = 7; int tab[ rozmiar ] = { 1, 2, 3, 4, 5, 6, 8 };
|
|
dott94 Temat założony przez niniejszego użytkownika |
» 2013-12-07 16:39:49 no ale sizeof mi poda rozmiar tablicy w bajtach... jak to się ma do losowania?
|
|
dott94 Temat założony przez niniejszego użytkownika |
» 2013-12-07 16:43:24 no tak... rozwiązanie ze zmienną rozmiar jest spoko... wtedy tylko losuję normalnie liczbę z przedziału [0, rozmiar] i następnie wypisuję na tab[los] |
|
Monika90 |
» 2013-12-07 16:45:24 Raczej z przedziału [0, rozmiar - 1], no i rozmiar to jest stała, a nie zmienna |
|
« 1 » 2 |