Witam :)
Powiedzmy że mam taką tablicę;
string tablica[4] = {"1111", "1010", "1001","1011"} // ( Wszystkie liczby binarne są tej samej długości )
I teraz chce stworzyć funkcję, która znajdzie mi liczbę najmniejszą.
Pomysł jest taki, żeby porównywać ze sobą kolejne indeksy wyrazów np. biorąc 2 pierwsze liczby, porównuje 1 = 1 - idziemy dalej.. 1 > 0 - i to porównanie świadczy już o tym że druga liczba będzie mniejsza od pierwszej. Prawda?
Ale jak to zapisać w kodzie?
za wartość minimalną podstawiam pierwszą liczbę, następnie w pętli:
for( int i=1, i<4; i++)
{ if( porownanie(string wartosc_minimalna, string tablica[i]) wartosc_minimalna = tablica[i] // kiedy funkcja porownanie zwróci prawde ( 2 wyraz mniejszy od 1) za wartosc minimalna podstawiam 2 liczbe.
}
a teraz to co nie chce mi wyjść czyli funkcja porownanie.
bool porownanie( string *a, string *b)
{
for(i=0; i< (*a).length();i++)
{ if ( (*a)[i] > (*b)[i] ) return true;
if( (*a)[i] < (*b[i]) return false;
}
return false
}
A teraz proszę oo pomoc, gdyż nie chce mi to śmigać :D
Nie podoba mi się zapis (*a)[i] .. ale muszę jakoś porównać po kolei znaki tych moich stringów binarnych ;/
PS. Taki problem przy zadaniu maturalnym 4.3 z informatyki rozszerzonej 2015 :D
Tutaj też mam odpowiedź na całe zadanie: http://www.algorytm.edu.pl/rozwiazania-zadan-maturalnych/zad-4-2015-nf.html
Ale w ogóle nie rozumiem momentu gdy dlugosc liczb zgadza się i żeby porównać która z nich jest większa autor używa po prostu zwykłego operatora pomiędzy stringami ( haha ) mam na myśli dokładnie te dwie linijki
if(liczba.size()==pomMax.size())
if(liczba > pomMax)