[C++] Przypisywanie liczb do taboicy
Ostatnio zmodyfikowano 2012-04-19 23:11
Trust Temat założony przez niniejszego użytkownika |
[C++] Przypisywanie liczb do taboicy » 2012-04-19 21:26:51 Dlaczego gdy wykona się petla do ..while i wypisze mi pierwszą liczbę np. 8, następnie chcę, aby była wyświetlona z tablicy o indeksie 1 no i tu problem wyświatlaja się jakieś śmieci. Ja chyba w ogóle nie przypisuje wylosowanej liczby do tab[1] ...? #include <iostream> #include <conio.h> #include <stdlib.h> #include <ctime>
using namespace std;
int main() { srand( time( NULL ) ); int licznik = 0, tab[ 15 ], a; do { int a =( rand() % 7 ) + 4; cout << a << " "; tab[ licznik ]; licznik++; } while( licznik != 999 ); cout << endl; cout << " Tab 1 rowna sie: " << tab[ 0 ]; getch(); }
|
|
SeaMonster131 |
» 2012-04-19 21:37:53 Tak, nie przypisujesz: int a =( rand() % 7 ) + 4; cout << a << " "; tab[ licznik ]; licznik++;
A poza tym, tablica ma 15 elementów, a nie 999, więc wychodzisz też poza zakres tablicy. |
|
Trust Temat założony przez niniejszego użytkownika |
» 2012-04-19 21:46:04 Więc moja tablica ma indeks o wartości 998,bo indeks-1. I teraz faktycznie moja tablica przyjmuje wartość zerową. Przypisywanie w ten sposób nie działa, ponieważ dalej jest zero. int a =( rand() % 7 ) + 4; cout << a << " "; a = tab[ licznik ]; licznik++;
Więc jak to przypisać ? |
|
SeaMonster131 |
» 2012-04-19 21:47:30 a = tab[ licznik ]; ponieważ zmiennej a nadajesz wartość komórki w tablicy, a Ty chcesz to raczej zrobić odwrotnie? :) |
|
Trust Temat założony przez niniejszego użytkownika |
» 2012-04-19 21:52:40 int a =( rand() % 7 ) + 4; cout << a << " "; tab[ licznik ] = a; licznik++;
O to chodziło :) Teraz działa. Wielkie dzięki !!! :) |
|
Trust Temat założony przez niniejszego użytkownika |
» 2012-04-19 22:29:27 Dlaczego funkcja Losowanie nie działa poprawnie ? Teraz tablica 1 równa się 0... #include <iostream> #include <conio.h> #include <stdlib.h> #include <ctime>
using namespace std;
int Losowanie() { int licznik = 0, a; int tab[ 998 ]; do { int a =( rand() % 7 ) + 4; cout << a << " "; tab[ licznik ] = a; licznik++; } while( licznik != 999 ); return( tab[ licznik ] ); }
int main() { int tab[ 998 ]; int licznik = 0; srand( time( NULL ) ); int los = Losowanie(); cout << endl; cout << " Tab 1 rowna sie: " << tab[ 1 ]; getch(); }
|
|
Admixior |
» 2012-04-19 22:36:37 Po uno int tab[ 998 ]; popraw na int tab[ 999 ]; bo tylu elementów używasz. Po drugie "licznik" po wyjściu z pętli będzie zawierał liczbę "999" a ani taki element nie istnieje bo musiałoby być int tab[ 1000 ]; A tym bardziej do niego nic nie przypisujesz (więc ą tam śmieci) return tab[ licznik-1 ]; zwraca ostatni element. |
|
xevuel |
» 2012-04-19 22:38:19 |
|
« 1 » 2 |