[C++] Pytanie o równoważność zapisu
Ostatnio zmodyfikowano 2014-03-08 19:00
d4rK Temat założony przez niniejszego użytkownika |
[C++] Pytanie o równoważność zapisu » 2014-03-08 12:49:57 Witam dopiero uczę się c++ i miałem pewien problem, który udało mi się rozwiązać, ale nie wiem dlaczego tak było. Otóż może mi ktoś powiedzieć dlaczego zapis atoi( x2[ i ] ); tab[ i ] = x2[ i ];
nie jest równoważny z zapisem tab[ i ] = atoi( x2[ i ] );
|
|
pekfos |
» 2014-03-08 13:22:13 Bo by to nie miało sensu? Funkcja zwraca ci wynik, a nie modyfikuje wszystko dookoła, byś mógł go pobrać skądkolwiek. |
|
d4rK Temat założony przez niniejszego użytkownika |
» 2014-03-08 14:08:23 w sumie racja mój idiotyzm dopiero uczę się c++. Miałbym jeszcze jedno pytanie tzn jeżeli zadeklaruje moją tablice z 1 postu jako float i kiedy wpisze argumenty w lini wywołania programu w cmd 1 + 3 to funckja atof zwróci mi do mojej tablicy wartość 1.00 i co dalej? Jak potraktuje plusa poda jego kod ascii czyli 35 czy go pominie ?? |
|
pekfos |
» 2014-03-08 14:12:37 Po pierwsze, do programu "1", "+" i "3" trafią oddzielnie. Po drugie, dokumentacja - tam masz opisane, co by się stało i tam powinieneś szukać odpowiedzi w pierwszej kolejności. |
|
d4rK Temat założony przez niniejszego użytkownika |
» 2014-03-08 19:00:23 no racja moja głupa. Prosiłbym bym jeszcze o pomoc(możecie mnie zjechać, że nie umiem, ale siedziałem nad tym cały naprawdę cały dzień dzisiaj i już się poddaje). Mam problem z deklaracja liczb tzn. polecenie jest takie, że w linie wywołania programu wpisuje działanie w formie liczba1 operator liczba2 i tak dalej ile wlezie. Wszystko ma być w osobnych funkcjach i jeszcze musi być jedna funcja dla lini programu i jedna dla wpisywania z klawiatury. Nie mogę sobie z tym pierwszym poradzić to jest cześć odpowiedzialna za linie programu if( argc > 1 ) { for( int i = 0; i < argc; i++ ) { cout << argv[ i ] << endl; } for( int i = 1; i < argc - 2; ) { double a, b; if( i % 2 != 0 ) { a = atof( argv[ i ] ); b = atof( argv[ i + 2 ] ); i++; } if( i % 2 == 0 ) { char * znak = argv[ i ]; wynik += zLini( a, znak, b ); i += 3; } } }
Lipa jest taka, że to działa tylko dla parzystej liczby danych. Jak próbowałem zmienić to albo pobierał wartość z argv[] większego niż liczba argumentów i był crash. Inna zmiana jaką zrobiłem to działał też źle bo dla działania 15 + 13 + 12 liczył wynik dla 15 i 13 a później dla 13 i 12. Moja wiedza to symfonia w której stoję na tablicach jednowymiarowych nie mam pojęcia jak rozwiązać ten problem może powinienem o czymś jeszcze poczytać dalej ?? EDIT: Udało mi się napisać dobry program ;] |
|
« 1 » |