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

Ce se afişează pe ecran în urma executării secvenţei de program de mai jos, în care variabilele s și t memorează șiruri cu cel mult 10 caractere, iar variabila i este de tip întreg? #100 exercitii pbinfo

char s[11]="abcduecda";
cout< i=0; j=strlen(s)-1;
while (i if (s[i]==s[j])
{
strcpy(t,s+j+1); strcpy(s+j,t);
strcpy(t,s+i+1); strcpy(s+i,t); j=j-2; // partea asta nu se vede complet in poza
}
else
{ i=i+1; j=j-1; }
cout<<" "<<s;

Anexe:

VxF: Atașează și captură de ecran sau poză că motorul site-ului deteriorează codul sursă din întrebări. ☹
all3xandra: am pus acum

Răspunsuri la întrebare

Răspuns de VxF
1

Răspuns:

Se afișează lungimea inițială a șirului de caractere, urmată de șirul rămas după eliminarea caracterelor identice la poziţii simetrice.

Explicație:

Se aplică metoda folosirii a două pointere: i pornește de la stânga iar j de la dreapta și se repetă până pointerele se întâlnesc la mijloc.


La fiecare pas, dacă caracterele indicate de cele două pointere sunt identice, se elimină ambele.

Altfel spus, dacă șirul de caractere este palindrom, nu mai rămâne nimic. Dacă unele caractere sunt excepţii, acelea vor fi păstrate și afișate la sfârșit.

(Caz special: dacă șirul are lungime impară, caracterul de mijloc este păstrat.)


all3xandra: multumesccc
Alte întrebări interesante