Răspuns :
codul tău e trunchiat şi nu redă un tablou complet a algoritmului. Nu am înţeles dacă se dă un număr l-ai citit în n. Văd că folosesti vector, cred pentru cifrele numărului, dar nu văd unde ai generat acest vector.
Dar referitor la întrebarea ta, de ce se parcurge până la n/2, adică până la jumătatea vectorului...
fie vectorul tău are n=6 elemente numeratate, adic[ indexate de la 0 la 5
indicele i 0 1 2 3 4 5
vectorul 3 2 7 7 2 3
atunci n/2=6/2=3
for (i=0; i < n/2; ++i)
if (a[i] != a[n-i-1]) { palindrom=false; break;}
explicatie: pt i=0, n-i-1=6-0-1=5, deci se verifica cifrele de la capete.
pt i=1; n-i-1=6-1-1=4, deci se verifica a[1] cu a[4]
pt i=2, se verifica a[2] cu a[3]
stop, am terminat deoarece in for avem pt i<n/2, adica pt i<3
Astfel au fost verificate toate perechile egal departate de mijloc,
Daca se punea conditia in for i < n , atunci i continua valorile si trecea de jumatate si se vor verifica a doua oara perechile a[3] cu a[2]. a[4] cu a[1]. a[5] cu a[0], ce cred iti dai seama ca e pur si simplu in plus
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!