Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- struct firma
- {
- char nume_firma[30];
- int nr_angajati;
- char localitate[30];
- };
- struct angajat
- {
- char nume[30];
- int varsta;
- struct firma f[30];
- };
- int main()
- {
- struct angajat a[30];
- int n,i;
- //citire si afisare date
- printf("Introduceti numarul de angajati:\n");
- scanf("%d",&n);
- getchar();
- for(i=0;i<n;i++)
- {
- printf("Introduceti numele angajatului %d:\n",i);
- gets(&a[i].nume);
- printf("Introduceti varsta angajatului %d:\n",i);
- scanf("%d",&a[i].varsta);
- getchar();
- printf("Introduceti numarul de angajati ai firmei unde lucreaza persoana %d:\n",i);
- scanf("%d",&a[i].f[30].nr_angajati);
- getchar();
- printf("Introduceti localitatea firmei unde lucreaza angajatul %d:\n",i);
- gets(&a[i].f[30].localitate);
- printf("Introduceti numele firmei %d:\n",i);
- gets(&a[i].f[30].nume_firma);
- }
- for(i=0;i<n;i++)
- {
- printf("%s %d %d %s %s\n",a[i].nume,a[i].varsta,a[i].f[30].nr_angajati,a[i].f[30].localitate,a[i].f[30].nume_firma);
- }
- //afisare angajati care lucreaza la firme din aceeasi localitate
- int j;
- for(i=0;i<n;i++)
- {
- for(j=i+1;j<n;j++)
- {
- if(strcmp(a[i].f[30].localitate,a[j].f[30].localitate)==0)
- {
- printf("%s %s\n",a[i].nume,a[i].f[30].nume_firma);
- }
- }
- }
- //ordonare crescatoare in functie de numarul de angajati
- int ok=0;
- struct angajat aux;
- while(ok==0)
- {
- ok=1;
- for(i=0;i<n;i++)
- {
- if(a[i].f[30].nr_angajati>a[i+1].f[30].nr_angajati)
- {
- aux=a[i];
- a[i]=a[i+1];
- a[i+1]=aux;
- ok=0;
- }
- }
- }
- for(i=0;i<n;i++)
- {
- printf("%s %d %d %s %s\n",a[i].nume,a[i].varsta,a[i].f[30].nr_angajati,a[i].f[30].localitate,a[i].f[30].nume_firma);
- }
- //aflarea angajatilor care au varsta mai mica decat medie tuturor angajatilor
- int suma=0;
- float medie;
- for(i=0;i<n;i++)
- {
- suma=suma+a[i].varsta;
- }
- medie=suma/n;
- for(i=0;i<n;i++)
- {
- if(a[i].varsta<medie)
- {
- printf("%s\n",a[i].nume);
- }
- }
- //determinare firma cu numarul maxim de angajati
- struct angajat r,max;
- for(i=0;i<n;i++)
- {
- for(j=i+1;j<n;j++)
- {
- if(a[i].f[30].nr_angajati>a[j].f[30].nr_angajati)
- {
- r=a[i];
- }
- }
- if(r.f[30].nr_angajati>max.f[30].nr_angajati)
- {
- max=r;
- }
- }
- printf("Firma cu cel mai mare numar de angajati este %s",max.f[30].nume_firma);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement