Tablice - problem z wyświetleniem zawartości wektora.
Ostatnio zmodyfikowano 2014-07-17 19:45
tomasz27 Temat założony przez niniejszego użytkownika |
Tablice - problem z wyświetleniem zawartości wektora. » 2014-07-17 16:40:40 Witam, zwracam się z prośbą o udzielenie pomocy w pewnej sprawie. Mam do napisania program, który dla n-elementowego wektora A liczb całkowitych wyznaczy nowy wektor B składający się jedynie z róznych elementów wektora A. Udało mi się już zrealizować część zadania (stworzenie drugiej tablicy do przechowywania niepowtarzających się elementów). Nie wiem jednak jak poradzić sobie z wyświetleniem tych elementów. Mam obydwie tablice o długości 10 elementów i przez to wyświetlają się randomowe wartości wektora B. Myślałem o konstrukcji z continue, lub break ale nie wiem jakiego warunku użyć. Bardzo proszę o pomoc. Poniżej kod #include <iostream>
using namespace std;
int main() { int n = 10; int A[ n ], B[ n ], i, j, k; bool x; cin >> n; for( i = 0; i < n; i++ ) { cout << i << " element tablicy: "; cin >> A[ i ]; cout << endl; } B[ 0 ] = A[ 0 ]; j = 1; for( i = 1; i <= n; i++ ) { x = 0; for( k = 0; k <= j; k++ ) { if( A[ i ] == B[ k ] ) x = 1; } if( x == 0 ) { B[ j ] = A[ i ]; j++; } } for( j = 0; j < n; j++ ) { cout << B[ j ] << endl; } return 0; } Przepraszam za bezprośrednie wklejenie kodu, ale nie zaznajomiłem się z opcjami umożliwiającymi wkelejenie kodu w innym formacie.[/i] |
|
pekfos |
» 2014-07-17 17:12:13 for( j = 0; j < n; j++ ) { cout << B[ j ] << endl; }
|
Zamiast n użyj wcześniej zdefiniowanego j. int A[ n ], B[ n ], i, j, k; bool x; cin >> n; |
Nie możesz tak tworzyć tablicy. |
|
tomasz27 Temat założony przez niniejszego użytkownika |
» 2014-07-17 19:09:28 Dlaczego tak nie można? I niebardzo rozumiem co masz na myśli jeśli chodzi o wcześniej zdefiniowane j, w jaki sposób użyć? |
|
pekfos |
» 2014-07-17 19:39:50 Tablica ma mieć stały, znany w czasie kompilacji rozmiar. Jeśli nie znasz rozmiary, to używasz dynamicznej alokacji lub kontenera typu std::vector<>. I niebardzo rozumiem co masz na myśli jeśli chodzi o wcześniej zdefiniowane j, w jaki sposób użyć? |
Przed pętlą wypisującą masz w j ilość danych do wypisania, więc masz użyć j w miejscu n, a dla pętli użyj innej zmiennej, najlepiej utworzonej bezpośrednio w for. |
|
tomasz27 Temat założony przez niniejszego użytkownika |
» 2014-07-17 19:45:03 Dziękuję bardzo za pomoc. |
|
« 1 » |