Treść zadania:
Podaj, ile liczb z pliku liczby.txt ma w swoim zapisie binarnym więcej zer niż jedynek. Przykład: Dla zestawu liczb:
- 101011010011001100111
- 10001001
- 1000000
- 101010011100
- 100010
wynikiem jest liczba 3 (3 podkreślone liczby mają w swoim zapisie więcej zer niż jedynek).
Mój pomysł na algorytm:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream plik;
plik.open("liczby.txt", ios::in);
string dane;
char znak;
int licz_zera = 0;
int licz_jedynki = 0;
int licz_wyrazy = 0;
while(!plik.eof())
{
plik >> dane;
for (int i=0; i=dane.size(); i++)
{
if(dane[i] == '0')
{
licz_zera++;
}
else if(dane[i] == '1')
{
licz_jedynki;
}
}
if(licz_zera > licz_jedynki)
{
licz_wyrazy++;
}
}
cout << "Takich liczb jest: " << licz_wyrazy << endl;
return 0;
}
Po uruchomieniu go cały jest cały czas czarny ekran i migający kursor. Moim pomysłem było:
1) Odczytanie pliku.
2) Pętla for która sprawdzi każdą cyferkę w pierwszej wczytanej liczbie.
3) Dwa warunki if, które będą liczyć ile jest jedynek a ile zer w danej liczbie.
4) Potem sprawdzamy czego było więcej - jedynek czy zer.
5) Pętla while zatacza kolejne kółko i wczytywana jest kolejna liczba z pliku tekstowego.
Mam gotowe rozwiązanie ze strony maturalnej, ale wolę dopracować to swoje, więc poprosiłbym o pomoc z tym obecnym.