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

Varianta 99 bac informatica 2009 intensiv . Sub. 3 ,ex. 4. Rezolvare cu explicatii!

Anexe:

Fast755: Ce rost mai are --n ? Al treilea rand din int main
boiustef: while (f >> a[n++]);
La citirea ultimului număr din fișier n devine mai mare decît numărul de numere citite... deci îl decrementăm pe n...
Altfel va fi cercetat și un element nul din tablou, ce nu e citit din fișier...
boiustef: Declarând global tabloul a, el va fi inițializat cu zerouri...
Fast755: Nu trebuie intre acolade while (f >> a[n++] si --n ?
boiustef: while-ul e complet... nu are corp, nu e necesar... nu ai ce scrie acolo... totul se face în paranteza rotundă
Fast755: if (lensecv>lenmax)

   {

       lenmax=lensecv; indmax=ind;

   }
Fast755: Si nici asta nu inteleg.

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

#include <fstream>

#include <cmath>

using namespace std;

ifstream f("date.txt");

int a[10001], i,n, lensecv, lenmax, ind, indmax, b, c;

int main()

{

   while (f >> a[n++]);

   --n;

   ind=1; b=abs(a[0]%2);

   lensecv=1; lenmax=1; indmax=1;

   for (i=1; i<n; i++)

   {

       c=abs(a[i]%2);

       if (c+b==1)

       {

           ++lensecv; ind=i;

       }

       else

       {

           if (lensecv>lenmax)

           {

               lenmax=lensecv;

               indmax=ind;

               lensecv=1;

           }

       }

       b=c;

   }

   if (lensecv>lenmax)

   {

       lenmax=lensecv; indmax=ind;

   }

   b=indmax-lenmax+1;

   c=b+lenmax;

   cout << lenmax << endl;

   for (int i=b; i<c; i++)

   {

       cout << a[i] << " ";

   }

}

Explicație:

am exersat (cu modificări de cod), deaceea propun să copii în aplicație pentru texte  (Notepad/wordpad/word) acest program, să aranjezi codul și apoi să-l copii în Code Blocks pentru testare... Succese!

Alte întrebări interesante