Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- typedef struct
- {
- char *nume;
- char *prenume;
- char CNP[14];
- int varsta;
- } Persoana;
- void alocare(Persoana **v, int n)
- {
- *v=malloc(n*sizeof(Persoana));
- }
- void citire(Persoana v[],int n)
- {
- int i;
- //char numec[20],prenumec[20];
- for(i=0; i<n; i++)
- {
- v[i].nume = malloc(sizeof(char) * 20);
- v[i].prenume = malloc(sizeof(char) * 20);
- printf("dati numele: ");
- fflush(stdin);
- gets(v[i].nume);
- printf("dati prenumele: ");
- gets(v[i].prenume);
- printf("dati varsta: ");
- scanf("%d", &v[i].varsta);
- getchar();
- printf("dati CNP(tot odata)\n");
- gets(v[i].CNP);
- }
- }
- void modificare(Persoana v[],int n,int poz,Persoana noua)
- {
- v[poz]=noua;
- }
- void stergere(Persoana **v,int *n,int pozSters)
- {
- for(int i=pozSters; i<*n-1; i++)
- (*v)[i]=(*v)[i+1];
- (*n)--;
- *v=realloc(*v,*n*sizeof(Persoana));
- }
- int adaugare(Persoana **v,int *n,int poz,Persoana baga)
- {
- if(poz>*n+1 || poz<0)
- return -1;
- *v=realloc(*v,(*n+1)*sizeof(Persoana));
- for(int i=(*n); i>=poz; i--)
- *(*v+i+1)=*(*v+i);
- *(*v+poz)=baga;
- (*n)++;
- return 0;
- }
- void afisare(Persoana v[],int n)
- {
- for(int i=0; i<n; i++)
- printf("Persoana %d:\nNume: %s\nPrenume: %s\nCNP: %s\nVarsta: %d\n----------------------\n",i,v[i].nume,v[i].prenume,v[i].CNP,v[i].varsta);
- }
- int main()
- {
- Persoana *p,noua,baga;
- int n, poz,pozSters,pozAdauga;
- printf("n= ");
- scanf("%d",&n);
- alocare(&p,n);
- citire(p,n);
- //afisare(p,n);
- /*noua.nume=malloc(20*sizeof(char));
- noua.prenume=malloc(20*sizeof(char));
- printf("Pozitia de modificat:");
- scanf("%d",&poz);
- printf("Nume nou:");
- fflush(stdin);
- gets(noua.nume);
- printf("Prenume nou:");
- gets(noua.prenume);
- printf("CNP nou:");
- gets(noua.CNP);
- printf("Varsta noua:");
- scanf("%d",&noua.varsta);
- getchar();
- modificare(p,n,poz,noua);
- afisare(p,n);*/
- /*printf("pozitia de stergere:");
- scanf("%d",&pozSters);
- stergere(&p,&n,pozSters);
- afisare(p,n);*/
- printf("Pozitie de adaugat:");
- scanf("%d",&pozAdauga);
- printf("Nume adaugat:");
- fflush(stdin);
- gets(baga.nume);
- printf("Prenume adauga:");
- gets(baga.prenume);
- printf("CNP adauga:");
- gets(baga.CNP);
- printf("Varsta adauga:");
- scanf("%d",&baga.varsta);
- getchar();
- adaugare(&p,&n,pozAdauga,baga);
- afisare(p,n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement