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. ☹
Răspunsuri la întrebare
Răspuns de
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.)
Alte întrebări interesante
Matematică,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă