Sprawdzanie czy liczba jest parzysta

0

Witam!
Dopiero zaczynam zabawe z programowaniem.
Mój problem polega na tym, że program ma sprawdzić które liczby są parzyste i zaznaczyć, jednak zaznacza wszystkie.
Poniżej kod programu:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

//---------------------------------------------------------------------------
#include <iostream.h>
#include <fstream.h>
#include <string.h>


bool isEvenNumber(const string &Text)
{
   if((Text.length() %2) == 0) return true;
   return false;
 }


int main()
{

// ----------- WCZYTYWANIE PLIKU ---------- //

fstream WczytajPlik;

WczytajPlik.open("cyfry.txt");

if (WczytajPlik.is_open() == false)
 {
        cout << "Blad podczas wczytywania pliku\n\n";
 }
    else
 {
        cout << "Plik wczytany poprawnie!\n\n";
 }

// ----------- WCZYTYWANIE PLIKU KONIEC ---------- //


string linia;
string Readed[1000];
int Iterator = 0;
int EvenNumberCount = 0;

while(WczytajPlik.eof() == false)
{
            getline(WczytajPlik, linia);

            if(isEvenNumber(Readed[Iterator]) == true)
            {
                      ++EvenNumberCount;
                      cout << linia << "  --parzysta" << endl;
            }

            Iterator++;

}
WczytajPlik.close();




system("pause");
} 

Pracuje w programie Borland C++ Builder 6

Z góry dzięki za pomoc :)

0

Ale co ten kod ma wspólnego z zadaniem o którym piszesz? Przecież ty tutaj sprawdzasz tylko czy wczytany napis ma parzystą liczbę znaków...

0

Może tak: Program ma wczytać liczby z pliku "cyfry.txt", sprawdzić które są parzyste i zaznaczyć je. Powinno wyglądać to mniej więcej tak:

213602 --parzysta
221
5469 --parzysta
5584 --parzysta

0

No ok, ale w takim razie w czym problem? Popraw metodę bool isEvenNumber(const string &Text) na taką która robi to o czym piszesz, czyli:

  • konwertuje napis na liczbę
  • sprawdza czy jest parzysta
0
#include <iostream.h>
#include <fstream.h>
#include <ctype.h>
 
int main()
  {
   fstream fs("cyfry.txt");
   if(fs)
     {
      while(fs)
        {
         char p=0;
         while(isdigit(c=fs.get())) cout<<(p=c);
         cout<<(p&1?"":"  --parzysta")<<endl;
        }
     }
   else cout<<"Blad podczas wczytywania pliku"<<endl<<endl;
   getchar();
   return 0;
  }
0

@Shalom: ... lub sprawdzaj, czy ostatni znak to 0, 2, 4, 6 lub 8, w ten sposób nie będziesz musiał niczego konwertować :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1