Mrovqa |
» 2012-12-06 19:35:30 Pomyśl logicznie. Masz przepisać tablicę tak, żeby index elementu jednej tablicy odpowiadał drugiej tak: 0-79, 1-78, 2-77, ... 79-0. Nie widzisz tu żadnej zależności, jakby to móc zrobić na pętli? |
|
Nindix |
» 2012-12-06 19:42:17 Podam ci ten kod, ale pod warunkiem, spróbuj się chociaż chwilkę zastanowić nad tym kodem. Tak na magnesie do jakiej chodzisz szkoły że ciebie uczą c++. #include <cstdlib> #include <iostream>
using namespace std;
int main( int argc, char * argv[] ) { char txt[ 80 ], odwrocony[ 80 ]; int w = 0; char max; cout << "Podaj ciag znakow:" << endl; cin.getline( txt, 80 ); int ile; for( int i = 0; i < 80; i++ ) { if( txt[ i ] == 0 ) { ile = i; break; } } for( ile; ile > 0; ile-- ) { odwrocony[ ile ] = txt[ ile - 1 ]; cout << odwrocony[ ile ]; } cout << endl; system( "pause" ); return 0; }
|
|
Mrovqa |
» 2012-12-06 19:54:48 Ty to przepisujesz na zasadzie tab2[ x ] = tab[ x - 1 ] a x+(x-1)=2x-1, czyli nie to, co chciałeś osiągnąć. Ma być tab2[x]=tab2[max-x-1], bo x+(max+x-1)=max-1 - to, co chcieliśmy osiągnąć. -1 jest z tego powodu, iż indeksujemy od zera. Tak na magnesie do jakiej chodzisz szkoły że ciebie uczą c++. |
Sam się zacząłem uczyć w podstawówce. Teraz chodzę do liceum, ale z powodu nowej podstawy programowej to dla nas (pierwszaków) nawet HTML "jest za trudny"... (a jestem na profilu mat-fiz-inf). "Ludzie dzielą się na samouków i nieuków". Wyraźnie to widać na przykładzie programistów - Ci lepsi sami się uczyli i kształcili (z resztą - na pewno nadal to robią), może jest jakiś niski odsetek wyjątków, ale jeszcze nigdy się z kimś takim nie spotkałem. |
|
krzyk |
» 2012-12-06 20:03:41 Jeśli masz tylko wyświetlić to na konsolę to zrób for z dekrementacją i wyświetlaj po jednym znaku. |
|
Nindix |
» 2012-12-06 20:21:44 Niezbyt zrozumiałem twoja wypowiedz, ale jeżeli mówisz że jest źle to pewnie tak jest, z tego powodu że widzę że umiesz o wiele więcej niż ja, który mam tylko podstawy.
Wracając do kodu, mi się on skompilował, i uruchomił poprawnie, efekt jest w swoim programie zrobiłem to tak że : Zrobiłem pętelkę która sprawdzała ile znaków ma tekst wprowadzony przez nas, na zasadzie że jeśli pętla przeszukuje dany element tablicy, a wnim juz nic niema to przypisz go do zmiennej ile.
Potem kolejna pętla , której licznik dałem jako zmienna ile, która przechowuje liczbę w której jest element z 0, a element niżej jest ostatni znak. Pętla działa, aż ile nie będzie wynosiło 0; i co obrót jest zmniejszane o 1.
Przy każdym obrocie przypisuje nowej tablicy "odwrocony" o elemencie równym licznikowi "ile" wartość elementu tablicy txt, który wynosi licznik - 1 ponieważ licznik ile miał wartość która była elementem tablicy txt, który zawierał 0, wiet odejmuje 1, i mam element który ma już jakiś znak.
Tak na marginesie Ja w podstawówce zacząłem uczyć się html bo kupiłem sobie książeczkę experta tak dla ciekawości. Potem w 1 klasie gimnazjum za sprawą starszego kolegi zacząłem uczyć się delphi 7, wtedy już zauważyłem że szkoła mnie nigdy takiego czegoś nie nauczy. Obecnie jestem w 2 klasie i od 5 miesięcy uczę się c++. Teraz od niedawna gdzieś 3 miesięcy już z Symfonią. Mam kolegę w technikum którego uczyli c++ na zasadzie c++ Builder, gdy z nim rozmawiałem stwierdziłem że za dużo to oni go tam nie nauczyli. |
|
minicpp |
» 2012-12-06 20:35:43 Oto potrzebna linijka: for( int x = 0; x < 80; x++ ) odwrocony[ 80 - x ] = tekst[ x ];
|
|
mistergol Temat założony przez niniejszego użytkownika |
» 2012-12-06 20:37:33 Super, dzięki wielkie, pozdrowionka. Zamykam! :) |
|
Mrovqa |
» 2012-12-06 20:40:19 @Nindix jeżeli opisujesz swój wcześniejszy algorytm to masz go źle, napisałem nawet co i jak naprawić. Zauważ, że Ty nie odwracasz tekstu, tylko go przesuwasz. Btw jeśli masz IV (czy może nawet i III) wydanie Symfonii C++ to możesz znaleźć moje nazwisko z tyłu ;) W podstawówce J. Grębosz mnie tam dopisał i pomyśleć, że dowiedziałem się o tym dopiero w te wakacje... heh :P /edit: przepraszam, że tak po zamkniętym temacie piszę (nie zauważyłem, że temat został w międzyczasie zamknięty), ale dla potomnych pozwolę sobie poprawić błąd @minicpp for( int x = 0; x < 80; x++ ) odwrocony[ 79 - x ] = tekst[ x ];
Patrz na pierwszy obieg pętli - jest odwrocony[80-0] co jest już elementem poza tablicą. |
|
1 « 2 » |