Informatică, întrebare adresată de TyMMy, 9 ani în urmă

cine poate sa imi explice si mie urmatoarea problema
char s[52],a[200]="";
    int i,k=0,j;
    cin>>s;
    for(i=0;i<strlen(s);i=i+2)
      for(j=1;j<=s[i+1]-'0';j++)
       {
           a[k]=s[i];
           k++;
       }
    cout<<a;

cerinta e ca fiecare litera sa fie scrisa de cate ori indica numarul de langa
exemplu: a2g4s7  ---    aaggggsssssss

Răspunsuri la întrebare

Răspuns de Emil1234
1
In primul for de la i pana la lungimea sirului se retin literele iar in al doilea se merge de la 1 pana la cifra de pe pozitia s[i+1].
De exemplu :
s[0] este a , apoi intra in for-ul al doilea de la 1 pana la 2 si se completeaza a[0] cu a , k creste , apoi a[1] cu a , k creste , apoi i-ul se face 3 si tot asa.

"k" trebuia sa creasca deoarece fiecare litera trebuie pusa pe o pozitie diferita ( nu poti retine in k[0] aaggggssssss... ) . De aceea pe k[0] se retine litera a , pe k[1] tot a , pe k[2] g ..... pe k[12] s.... )

Sper ca ai inteles .
Alte întrebări interesante