Zliczanie sum liczb
Ostatnio zmodyfikowano 2018-05-22 19:37
moryson12 Temat założony przez niniejszego użytkownika |
Zliczanie sum liczb » 2018-05-22 18:18:28 Program ma na celu czytać liczby z notatnika i przepisywać tylko te, których suma liczb jest większa lub równa 30, jednak z jakiegoś powodu przepisuje wszystkie. Wie ktoś co może być przyczyną? int suma = 0;
std::string wyraz; std::ifstream wprowadzanie; std::ofstream wyprowadzanie; wprowadzanie.open( "liczby.txt" ); wyprowadzanie.open( "wypisanie.txt" ); while( wprowadzanie.good() ) { wprowadzanie >> wyraz; suma = 0; for( int x = 0; x <= wyraz.length() - 1; x++ ) { suma = suma + wyraz[ x ]; } if( suma >= 30 ) { wyprowadzanie << wyraz << "\n"; } }
|
|
pekfos |
» 2018-05-22 18:37:55 czytać liczby z notatnika i przepisywać tylko te, których suma liczb jest większa lub równa 30 |
Chciałeś napisać: suma cyfr? Cyfra jest znakiem, nie liczbą. Warunek jest zawsze spełniony, bo nawet sama cyfra '0' jest większa od 30. |
|
moryson12 Temat założony przez niniejszego użytkownika |
» 2018-05-22 19:27:43 Tak, chodziło o sumę cyfr w liczbie. Dlaczego 0 jest większe od 30? |
|
pekfos |
» 2018-05-22 19:30:36 Bo cyfra jest znakiem, nie liczbą. Znak '0' ma liczbową wartość 48. |
|
moryson12 Temat założony przez niniejszego użytkownika |
» 2018-05-22 19:32:10 No to by sporo wyjaśniało. Czyli muszę użyć parseint? |
|
pekfos |
» 2018-05-22 19:37:11 |
|
« 1 » |