Varianta 99 bac informatica 2009 intensiv . Sub. 3 ,ex. 4. Rezolvare cu explicatii!
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...
{
lenmax=lensecv; indmax=ind;
}
Răspunsuri la întrebare
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!