Page 2 of 2

Re: Adaugare rand nou in matrice

Posted: 03 Mar 2011, 22:13
by pmarian
Ideea e ca vreau sa am o singura matrice cu "n" elemente si sa fie "dinamic" adica sa pot adauga date in ea exact in modul in care am explicat mai sus :)

Re: Adaugare rand nou in matrice

Posted: 03 Mar 2011, 23:06
by zlatomir
Pai tocmai pentru ca vrei inserare in mijloc e mai recomandata lista (dublu inlantuita) in locul array-ului (sau std::vector).
In topic-ul tau despre carti cu probleme C++ ti-am dat link la o carte despre algoritmi (si contine informatii si despre structuri de date), iti recomand sa descarci pdf-urile (sau sa arunci o privire online)
O alta scurta comparatie intre containere (cele din STL) poate fi gasita aici.

Acum legat de cod, tu nu faci copierea (aceea de care zicea Marius), codul ar trebui sa arate cam asa:

Code: Select all

   
//...
   if (b < 6) { 
//tu aici doar ai afisat array-ul
      for (j = 5; j > b; j--) {       //incepi de la sfarsit
			a[j] = a[j-1];    //copiezi elementele ... (ii pierzi valoarea ultimului daca nu faci realocari)
	  }
      a[b] = c; //si apoi il pui pe c pe pozitie
   }
//afisarea o faci mai tarziu
...
Acum incearca sa ii faci niste imbunatatiri:
1) sa folosesti o variabila pt a stoca marimea (numarul de elemente) sa nu il mai ai pe magicul 6 repetandu-se peste tot
2) tu faci citirea "numarului" de inserat (c) chiar si daca pozitia (b) e mai mare decat 6.
3) poti sa il scri astfel incat programul sa afiseze pozitia in forma "umana" adica 1 sa fie primul element si 6 ultimul (nu primul 0 si 5 ultimul ca si pt C++)