[ Ice-D @ 05.12.2008. 11:09 ] @
Code: #include <stdio.h> int main() { int ch; int cnt = 0; int i; while ( (ch = getchar () ) != EOF ) { cnt++; if ( ( ch == ' ' ) || '\n') { for ( i = 0; i < cnt; i++ ) printf ( "*" ); printf ( "\n" ); cnt = 0; } } return 0; } U zadatku se traži: za svaku riječ isprintati onoliko * koliko je riječ duga. Što mene muči? Ja pokrenem debager, dođem do while ( (ch = getchar () ) != EOF ) unesem naprimer: asdb ght rb , stisnem ENTER, dođem do if ( ( ch == ' ' ) || '\n') provjerava se 'a' == ' ' || '\n' i on vrati True!!? i uđe u for petlju, ako napišem u kodu if ( ( ch == ' ' ) dakle bez '\n' vrati false. I nije problem samo u '\n' ako stavim bilo koji znak on vraća True. Koliko sam shavatio Or operator vraća True ako je 1 ili 2 operanta True. Ovde očito oba vraćaju False 'a' == ' ' || '\n'. a nije jednako praznom znaku ni novom redu. Ne želim da mi se riješi zadatak već da shvatim u čemu grešim. |