Miszcz Napisano Maj 10, 2011 Zgłoszenie Share Napisano Maj 10, 2011 Witam. Mam do napisania taki program, w którym muszę za alokować pamięć na tablicę jednowymiarową i wpisać tam liczby. Dalej muszę to przesortować zawartość i wyświetlić tę tablicę PRZED i po sortowaniu. No i tu mam problem jak wyświetlić PRZED sortowaniem, tę samą tablicę(wskaźników czy czego:))? Czy da się to zrobić bez używania drugiej takiej samej tablicy? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
esail Napisano Maj 10, 2011 Zgłoszenie Share Napisano Maj 10, 2011 Normalnie: wyswietlasz, sortujesz, wyswietlasz. Wystarczy jedna tablica. W czym ma to byc? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Miszcz Napisano Maj 10, 2011 Autor Zgłoszenie Share Napisano Maj 10, 2011 Chodzi o to, ze w zadaniu jest napisane, ze na koncu (przy wychodzeniu) jedna funkcja ma wyswietlic tablice przed i po sortowaniu Jeszcze z pytanie z innej beczki jak utworzyc tablice, której elementami sa wskazniki na elementy innej tablicy?. Pisze w C\C++ Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
thof Napisano Maj 10, 2011 Zgłoszenie Share Napisano Maj 10, 2011 Chodzi o to, że w zadaniu jest napisane, że na końcu (przy wychodzeniu) jedna funkcja ma wyświetlić tablicę przed i po sortowaniu No to musisz zrobić kopię tablicy. Jeszcze z pytanie z innej beczki jak utworzyć tablicę, której elementami są wskaźniki na elementy innej tablicy?. Hmmm... wskaźnik na tablicę (właściwie to na jej bazę)? Jeśli tak to w ten sposób. #include <cstdlib> #include <iostream> int main() { int array[] = {4, 5, 6}; std::cout<<"Tablica:\n"; for(int i=0; i<3; i++){ std::cout<<array[i]<<"\n"; } int *array2 = array; int *temp = array; std::cout<<"\nWskaznik na tablice:\n"; for(int i=0; i<3; i++){ std::cout<<(*array2)<<"\n"; array2++; } array2=temp; //wraca do adresu pierwszego elementu array[1] = 10; //zmienia wartosc drugiego elementu std::cout<<"\nWskaznik na tablice po zmianie wartości:\n"; for(int i=0; i<3; i++){ std::cout<<(*array2)<<"\n"; array2++; } return 0; } Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Miszcz Napisano Maj 10, 2011 Autor Zgłoszenie Share Napisano Maj 10, 2011 No to musisz zrobic kopie tablicy. Hmmm... wskaznik na tablice (wlasciwie to na jej baze)? Jesli tak to w ten sposób. #include <cstdlib> #include <iostream> int main() { int array[] = {4, 5, 6}; std::cout<<"Tablica:\n"; for(int i=0; i<3; i++){ std::cout<<array[i]<<"\n"; } int *array2 = array; int *temp = array; std::cout<<"\nWskaznik na tablice:\n"; for(int i=0; i<3; i++){ std::cout<<(*array2)<<"\n"; array2++; } array2=temp; //wraca do adresu pierwszego elementu array[1] = 10; //zmienia wartosc drugiego elementu std::cout<<"\nWskaznik na tablice po zmianie wartosci:\n"; for(int i=0; i<3; i++){ std::cout<<(*array2)<<"\n"; array2++; } return 0; } Ok rozwiazanie jest w porzadku dla zwyklych tablic, ale u mnie druga jest tez tablica wskazników i jak sortuje pierwsza to zmienia mi sie druga. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
thof Napisano Maj 10, 2011 Zgłoszenie Share Napisano Maj 10, 2011 Bo musisz zrobić KOPIĘ pierwszej tablicy i wtedy sortować, a nie wskaźnik na pierwszą tablicę. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Miszcz Napisano Maj 10, 2011 Autor Zgłoszenie Share Napisano Maj 10, 2011 Bo musisz zrobić KOPIĘ pierwszej tablicy i wtedy sortować, a nie wskaźnik na pierwszą tablicę. Kopię czyli zwykłą tablicę nie wskaźników? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
thof Napisano Maj 10, 2011 Zgłoszenie Share Napisano Maj 10, 2011 Tak i poczytaj o wskaźnikach. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Miszcz Napisano Maj 11, 2011 Autor Zgłoszenie Share Napisano Maj 11, 2011 Dobra juz rozumiem dlaczego mi nie wychodzilo. Dzieki za pomoc. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się