Witam jest początkującym, mam problem z poniższym kodem, nie wiem dokładnie na czym polega błąd. Szukałem na forum podpowiedzi ale niestety nie udało mi się znaleźć odpowiedzi na mój problem. Teoretycznym zadaniem "programu" jest wskazanie trzech największych liczb podawanych przez użytkownika. Za wskazanie błędów będę wdzięczny.
using namespace std;
float uaktualnianianie_najwiekszej(float* max1, float* max2, float* max3, float* liczba);
float wyswietl_wynik(float* max1, float* max2, float* max3);
int main()
{
setlocale(LC_ALL, "pl_PL");
float max1 = -1, max2 = -1, max3 = -1;
float liczba = 0;
do
{
cout << "Podaj liczbe dodatnią:\n";
cin >> liczba;
uaktualnianianie_najwiekszej(&max1, &max2, &max3, &liczba);
}
while (liczba >= 0);
wyswietl_wynik(&max1, &max2, &max3);
return 0;
}
float uaktualnianianie_najwiekszej(float* max1, float* max2, float* max3, float* liczba)
{
if (liczba >= 0)
{
if (max1 >= 0)
{
max3 = max2;
max2 = max1;
max1 = liczba;
}
else
if (max2 >= 0)
{
max2 = max1;
max1 = liczba;
}
else
if (max3 >= 0)
{
max3 = liczba;
}
}
return *max1, * max2, * max3, * liczba;
}
float wyswietl_wynik(float* max1, float* max2, float* max3)
{
if (max1 >= 0)
cout << "Najwieksza liczba :" << (float*)max1 << endl;
{
if (max2 >= 0)
{
cout << "Druga najwieksza liczba :" << (float*)max2 << endl;
}
if (max3 >= 0)
{
cout << "Trzecia najwieksza liczba :" << (float*)max3 << endl;
}
}
return *max1, * max2, * max3;
}