Răspuns :
ok deci exista doua probleme majore
1. programul tau nu acopera cazul in care dupa secventa de lungime maxima nu mai am nimic
ex.
1 1 2 2 2 3 3 3 3
o sa afiseze 3 2 in loc de 4 3
2. citirea lui y este perfect valida in forma asta DOAR in citirea din fisier, unde nu e nevoie sa introduci litera pentru a termina citirea deoarece programul isi da seama singur cand a terminat de parcurs fisierul.
Dar daca citesti de la tastatura, while(f>>y) nu se va opri decat atunci cand ii vei oferi ceva diferit de o variabila de acelasi tip cu y (in cazul tau un intreg) pentru ca altfel el tot asteapta sa introduci variabile.
Daca ai intalnit problema cu citirea cand testezi de la tastatura, foloseste fisiere si e ok. daca treaba asta se intampla si la citire din fisier poate fi o problema la compilator si nu te pot ajuta.
solutia pe care o propun eu este:
---inlocuiesti doar structura while, restul e ok----
while ( fin >> y ){
if ( x == y )
lg++;
if ( k < lg)
k = lg, xmin = x;
else if ( k == lg && xmin > x )
xmin = x;
if(x!=y)
lg = 1;
x = y;
}
am scapat de else pentru a efectua comparatia de lungime chiar si daca x==y (asta evita problema de la 1) si am pus niste paranteze la while pentru ca am mai multe instructiuni acum. apoi am mai pus o conditie la actualizarea lui lg daca este cazul, if(x!=y) lg=1. asta inseamna ca lg se va reseta doar daca termin secventa de numere egale.
pentru orice nelamurire, poti sa ma intrebi in comentarii sau in mesaj privat si incerc sa te ajut cat de curand :) spor!