Konwersja na zwykły txt - nie wyświetla wyniku
Ostatnio zmodyfikowano 2013-11-09 17:45
Zebrak Temat założony przez niniejszego użytkownika |
» 2013-11-09 14:52:32 for( i = 0; por == 1; i++ ) { if( c == kody[ i ] ) { por = 1; m = i; } } Brakło jednego znaku równości przy warunku końcowym? O to chodzi? Nawet po zmianach nic nie dostaje na ekran |
|
Monika90 |
» 2013-11-09 15:06:24 Teraz pętla się nigdy nie wykona, bo warunek por == 1 jest zawsze fałszywy. |
|
Zebrak Temat założony przez niniejszego użytkownika |
» 2013-11-09 15:11:15 Niestety ale chyba nic z tego nie będzie... Nawet jeśli zamienię por==1 na i<=25 (znam rozmiar tablicy) to niewiele to zmienia. |
|
Zebrak Temat założony przez niniejszego użytkownika |
» 2013-11-09 16:38:48 Niestety, ale po koljenej godzinie czytania i próbie znalezienia głupiego błędu w mojej pętli nie jestem w stanie go znaleźć. Program działa jeśli zamiast pętli for, zrobie wszystko ręcznie if else'ami if( c == kody[ 0 ] ) m = 0; else if( c == kody[ 1 ] ) m = 1; else if( c == kody[ 2 ] ) m = 2; else if( c == kody[ 3 ] ) m = 3; else if( c == kody[ 4 ] ) m = 4; else if( c == kody[ 5 ] ) m = 5; Ale przecież nie o to chodzi. Czy można liczyć na wskazanie tego błędu w pętli? |
|
pekfos |
» 2013-11-09 16:57:44 Przecież wskazaliśmy błąd.. |
|
Zebrak Temat założony przez niniejszego użytkownika |
» 2013-11-09 17:04:24 Niestety ale ja tego błędu nie rozumiem, dlaczego pętla jest nieskończona? Przecież ma sie wykonywać dopóki por będzie równe 1. A por takie się stanie jeśli stringi będą sobie odpowiadały. Kombinowałem też z pętlą while, ale nici z tego. Mam rozumieć, że źle jest zapisany warunek kończący pętle for? Jesli tak to naprawde nie mam pomysłu jaki powinien być. Próbowałem się nawet pozbyć tego if i zrobić to tylko pętla for for( i = 0; c == kody[ i ]; i++ ] { m = i } Ale równiez to nie wypaliło, tak jakby licznik się nie zwiększał. |
|
pekfos |
» 2013-11-09 17:15:31 Przecież ma sie wykonywać dopóki por będzie równe 1. |
A jest równe 0. Pętla forAle równiez to nie wypaliło, tak jakby licznik się nie zwiększał. |
To się nawet nie kompiluje. |
|
Zebrak Temat założony przez niniejszego użytkownika |
» 2013-11-09 17:32:58 Czytałem zawórno o operatorach, jak i pętlach i nie raz korzystałem juz z pętli for. Ale w tym konkretnym przypadku nie przeskoczę tego. Gdzieś w głowie u mnie siedzi w pewnym miejscu jakies nielogiczne rozumowanie... Jeszcze raz int por = 0; for( int i = 0; por == 1, i++ ) { if( c == kody[ i ] ) { m = 1; por = 1; } }
No i po kolei. 1. Ustawione zostaje 0 dla zmiennej por. 2. Jest pętla, warunek początkowy i jest 0. 3. Pętla sie ma skończyć kiedy por będzie 1 (wcześniej było wyzerowane). 4. po kązdym obiegu pętli i zwiększa się o 1. 5. Za każdym razem w pętli sprawdzany jest warunek czy strin ze zmiennej c jest równy strongowi z tablicy 6. Jesli jest taki sam to por ustawia się na jeden, m przejmuje licznik i. 7. Petla się juz więcej nie wykona bo teraz już por jest równe 1. |
|
1 « 2 » 3 |