Rzutowanie
Ostatnio zmodyfikowano 2015-12-22 15:26
Anim Temat założony przez niniejszego użytkownika |
Rzutowanie » 2015-12-22 13:39:01 Cześć, otóż mam takie pytanie, czy rzutowanie jest kosztowne dla programu? MOże przedstawię dokładnie problem, o który mi chodzi. Rozwiązywałem zadanie ze spoja PESEL. I postanowiłem rozwiązać to zadanie w taki sposób: string pesel; int tab[ 11 ] = { 1, 3, 7, 9, 1, 3, 7, 9, 1, 3, 1 }; int suma = 0;
cin >> pesel; for( int i = 0; i < 11; i++ ) { suma +=( int )( pesel[ i ] - 48 ) * tab[ i ]; }
i tutaj moje pytanie, czy sposób z rzutowaniem jest dobry (tz. działa, ale czy stosowana przeze mnie konwencja jest poprawna - czy to jest zgodne z kanonem programowania)? a może jest jakiś wygodniejszy sposób "wyłuskiwania" poszczególnych cyfr z długiej liczby? |
|
carlosmay |
» 2015-12-22 13:58:00 czy sposób z rzutowaniem jest dobry |
Sposób działający jest dobrym sposobem. Można tak. Łatwiej zapamiętać, że odjecie od cyfry w łańcuchu znaku '0' daje oczekiwaną wartość. |
|
Anim Temat założony przez niniejszego użytkownika |
» 2015-12-22 14:13:27 ?? co to ? :D |
|
carlosmay |
» 2015-12-22 14:29:18 suma +=( pesel[ i ] - '0' ) * tab[ i ]; W tym konkretnym przypadku nie musisz nawet używać int do rzutowania, bo znak char to też liczba całkowita. Różnica jest w jej interpretacji przy wypisaniu. char ch = 'a' + 3; cout << ch << endl;
|
|
Anim Temat założony przez niniejszego użytkownika |
» 2015-12-22 15:26:58 super :) dzięki za odpowiedź :) |
|
« 1 » |