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 »  |