jankowalski25 |
» 2017-05-07 16:12:27 A gdzie wartość początkowa? Co tam miało być po prawej? Może inaczej: 1. Sprawdź, czy pierwszy znak wewnątrz str jest znakiem kończącym tekst. 2. Jeśli tak, to już znasz długość tekstu. 3. Jeśli nie, to sprawdzasz kolejne znaki aż do znalezienia znaku kończącego tekst. |
|
milmega Temat założony przez niniejszego użytkownika |
» 2017-05-07 16:17:48 Po prawej dałem null, ale go nie pokazuje wiec domyslam sie ze jest to niepoprawny zapis. |
|
jankowalski25 |
» 2017-05-07 16:38:09 Że jak? Przecież NULL jest zdefiniowane jako zero! Może lepiej spróbuj zaimplementować powyższy algorytm. A co do pętli, to chyba while lepiej tu pasuje. |
|
milmega Temat założony przez niniejszego użytkownika |
» 2017-05-07 22:38:37 Chyba udało sie juz z petlą. int available_length( char str[], int max_length ) { int max_lenght = 50; int suma = 0; int i = 0; while( str[ i ] > 0 ) { suma++; i++; } int wynik = max_lenght - suma; if( wynik > 0 ) { return wynik; } else if( wynik < 0 ) { return - 1; } }
|
|
milmega Temat założony przez niniejszego użytkownika |
» 2017-05-09 17:47:21 Wydaje mi się że ilość znaków jest poprawnie obliczona, więc wie ktoś dlaczego po odjęciu od maksymalnej ilości znaków funkcja nie zalicza mi tesów?
FAILED available_length ( 'ac imperdiet eget, blandit eget ', 32 ){ return -1; } => -1 == 0 FAILED available_length ( 'Nam interdum sit amet tellus ', 43 ){ return -1; } => -1 == 14 PASS available_length ( 'ipsum dolor sit amet, consectetur adipiscing ', 39 ){ return -1; } => -1 == -1 FAILED available_length ( 'Quisque cursus in orci ut ', 56 ){ return -1; } => -1 == 30 PASS available_length ( 'in orci ut lacinia. Phasellus venenatis velit ', 36 ){ return -1; } => -1 == -1 FAILED available_length ( 'odio ac suscipit pretium. Nam ', 49 ){ return -1; } => -1 == 19 FAILED available_length ( 'ut diam posuere condimentum. ', 54 ){ return -1; } => -1 == 25 FAILED available_length ( 'lacinia. Phasellus venenatis velit ', 47 ){ return -1; } => -1 == 12 FAILED available_length ( 'lacus lectus, iaculis ac imperdiet eget, ', 60 ){ return -1; } => -1 == 19 FAILED available_length ( 'amet tellus quis condimentum. Nam aliquam lorem ', 69 ){ return -1; } => -1 == 21 |
|
jankowalski25 |
» 2017-05-09 21:15:15 Co zwróci funkcja, gdy wynik wynosi zero? Dopisano:Dlaczego zawsze 50 ? I dlaczego nie korzystasz z argumentu max_length, tylko tworzysz nową zmienną lokalną o mylącej nazwie? |
|
kaktus12121 |
» 2017-05-11 00:44:21 int available_length( char str[], int max_length ) { int i = 0; while( str[ i ] > 0 ) { i++; } if( i > max_length ) { return - 1; } return max_length - i; }
:) |
|
1 « 2 » |