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

Łańcuchy - zadanie.

Ostatnio zmodyfikowano 2017-05-11 00:44
Autor Wiadomość
jankowalski25
» 2017-05-07 16:12:27
int suma;
A gdzie wartość początkowa?
i !=;
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.
P-160800
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.
P-160802
jankowalski25
» 2017-05-07 16:38:09
Po prawej dałem null
Ż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.
P-160805
milmega
Temat założony przez niniejszego użytkownika
» 2017-05-07 22:38:37
Chyba udało sie juz z petlą.

C/C++
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;
    }
}
P-160826
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
P-160878
jankowalski25
» 2017-05-09 21:15:15
Co zwróci funkcja, gdy
wynik
 wynosi zero?

Dopisano:
int max_lenght = 50;
Dlaczego zawsze
50
? I dlaczego nie korzystasz z argumentu max_length, tylko tworzysz nową zmienną lokalną o mylącej nazwie?
P-160882
kaktus12121
» 2017-05-11 00:44:21
C/C++
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;
}
:)
P-160932
1 « 2 »
Poprzednia strona Strona 2 z 2