Mam algorytm na sprawdzanie max i min wartości z pliku tekstowego. Algorytm działa poprawnie, kiedy w pliku tekstowym jest 1000 liczb (w którym znajdują się liczby nawet 250-cyfrowe). Kiedy jest w nim 5000 liczb (max 9-cyfrowe) to wypisuje bzdury. Nie rozumiem tego, bo powinien działać poprawnie...
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
fstream plik;
plik.open("dane.txt", ios::in);
string liczba, pomMax, pomMin;
int nrMax = 1;
int nrMin = 1;
while(!plik.eof())
{
plik >> liczba;
pomMax = pomMin = liczba;
for(int i=2; i<5001; i++)
{
plik >>liczba;
if(liczba.size() > pomMax.size())
{
pomMax = liczba;
nrMax = i;
}
else if(liczba.size()==pomMax.size())
if(liczba > pomMax)
{
pomMax = liczba;
nrMax = i;
}
if(liczba.size() < pomMin.size())
{
pomMin = liczba;
nrMin = i;
}
else if(liczba.size()==pomMin.size())
if(liczba < pomMin)
{
pomMin = liczba;
nrMin = i;
}
}
}
cout << "Najmniejsza liczba znajduje sie w linii numer: " << nrMin << endl;
cout << "Najwieksza liczba znajduje sie w linii numer: " << nrMax << endl;
cout << pomMax << endl;
cout << pomMin << endl;
plik.close();
return 0;
}