Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Pytanie o równoważność zapisu

Ostatnio zmodyfikowano 2014-03-08 19:00
Autor Wiadomość
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


C/C++
atoi( x2[ i ] );
tab[ i ] = x2[ i ];
nie jest równoważny z zapisem
C/C++
tab[ i ] = atoi( x2[ i ] );
P-105849
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.
P-105852
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 ??
P-105855
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.
P-105856
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
C/C++
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 ;]
P-105876
« 1 »
  Strona 1 z 1