programATOR1 Temat założony przez niniejszego użytkownika |
Odwracanie tablicy » 2015-11-24 18:37:54 Witam, mam problem ze zrobieniem zadania z odwracaniem tablicy, której ostatni element to -1 i nie znam jej długości, udało mi się napisać coś takiego: #include<iostream> using namespace std; int main() { ios_base::sync_with_stdio( false ); int n, i = 1, m, h; int tab[ 21000 ]; cin >> tab[ i ]; n = tab[ i ]; while( n != - 1 ) { n = tab[ i + 1 ]; m = i; cin >> n; i++; } for( int j = i - 1; j > 0; j-- ) { h = tab[ j ]; cout << h << " "; } }
Program wypisuje tylko ostatnią liczbę, którą powinien, a wcześniej wypisuje same 0 ( w odpowiedniej ilości, czyli tyle 0 ile liczb powinien wypisać). Proszę o pomoc, ponieważ kompletnie nie mam pomysłu jak naprawić ten program, domyślam się, że jest coś nie tak w tym pierwszym while'u, ale nie mam pojęcia co jest zle. |
|
carlosmay |
» 2015-11-24 19:02:40 Wstaw kod w znaczniki, widzisz co się dzieje. Informacja w zakładaniu tematów. edit: Tak sprawdź długość tablicy: int tab[ 21000 ]; int rozmiar = sizeof( tab ) / sizeof( int );
|
|
carlosmay |
» 2015-11-24 19:15:24 A jak chcesz liczyć na piechotę to tak: int i = 0; tab[ 20999 ] = - 1; n = tab[ i ]; while( n != - 1 ) { n = tab[ i++ ]; } cout << i << endl;
|
|
michal11 |
» 2015-11-24 19:21:24 Albo jeszcze krócej : while( tab[ i++ ] != - 1 ); |
|
programATOR1 Temat założony przez niniejszego użytkownika |
» 2015-11-24 19:27:56 Program dalej nie działa :/ może nie do końca jasno się wyraziłem, że tablica może maksymalnie zawierać 21000 liczb, ale może równie dobrze zawierać 3 liczby i mam wypisać nie ich ilość, ale w odwróconej kolejności te liczby z wyjątkiem liczby ostatniej ( czyli -1), np. jak wpisuję liczby po kolei do konsoli: 4, 8, 41563, -1;
to ma wypisać : 41563, 8, 4 |
|
michal11 |
» 2015-11-24 19:30:05 Jak masz wyliczoną długość to wypisanie tablicy od tylu nie jest żadnym problemem, wystarczy dobrze skonstruowany for. |
|
carlosmay |
» 2015-11-24 19:31:35 Żeby wypisać od końca musisz liczyć na piechotę, ale musisz wyliczyć ile jest elementów od początku do wartości -1. Wyznaczasz tak ile jest elementów i tyle elementów tej tablicy odwracasz. |
|
programATOR1 Temat założony przez niniejszego użytkownika |
» 2015-11-24 19:36:29 No to coś takiego zrobiłem w tym moim programie i on wypisywał dobrą ilość elementów ( czyli długość była dobra), ale zamiast liczb wpisanych w pierwszym while'u wypisywał 0
Długością tablicy w moim while'u była zmienna m jakby co, a z tych porad nie mogę inaczej określić długości tablicy, bo jak dam tab[20999]= -1, to muszę wpisać 21000 liczb w konsoli |
|
« 1 » 2 |