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

Zliczanie sum liczb

Ostatnio zmodyfikowano 2018-05-22 19:37
Autor Wiadomość
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ą?

C/C++
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";
    }
}
P-171233
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.
P-171234
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?
P-171235
pekfos
» 2018-05-22 19:30:36
Bo cyfra jest znakiem, nie liczbą. Znak '0' ma liczbową wartość 48.
P-171236
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?
P-171237
pekfos
» 2018-05-22 19:37:11
P-171238
« 1 »
  Strona 1 z 1