Informatică, întrebare adresată de stefanyatagan, 8 ani în urmă

Va rog,e urgent!Problema informatica​

Anexe:

Răspunsuri la întrebare

Răspuns de VxF
2

Răspuns:

#include <iostream>

#include <fstream>

int main()

{

   int numar, lungime = 0, lungimeMaxima = -1, numarMaxime;

   bool paritate, paritateSecventa;

   std::ifstream fisierIn("bac.txt");

   while (fisierIn.peek() && ! fisierIn.eof()) {

       fisierIn >> numar;

       fisierIn.get();

       paritate = numar % 2;

       // la procesarea primului număr încă nu avem paritatea secvenței

       if (! lungime) {

           paritateSecventa = paritate;

       }

       if (paritateSecventa != paritate) { // schimbare paritate

           if (lungimeMaxima < lungime) { // nou record de lungime

               lungimeMaxima = lungime;

               numarMaxime = 1;

           } else if (lungimeMaxima == lungime) { // record egalat

               numarMaxime++;

           }

           paritateSecventa = paritate;

           lungime = 1;

       } else { // aceași paritate

           lungime++;

       }

   }

   fisierIn.close();

   // ultima secvență nu a fost luată în evidență în interiorul while

   if (lungimeMaxima < lungime) { // nou record de lungime

       lungimeMaxima = lungime;

       numarMaxime = 1;

   } else if (lungimeMaxima == lungime) { // record egalat

       numarMaxime++;

   }

   std::cout << numarMaxime << " " << lungimeMaxima << std::endl;

}

Explicație:

Alte întrebări interesante