Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.87 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. struct firma
  6. {
  7. char nume_firma[30];
  8. int nr_angajati;
  9. char localitate[30];
  10. };
  11.  
  12. struct angajat
  13. {
  14. char nume[30];
  15. int varsta;
  16. struct firma f[30];
  17. };
  18.  
  19. int main()
  20. {
  21. struct angajat a[30];
  22. int n,i;
  23.  
  24. //citire si afisare date
  25.  
  26. printf("Introduceti numarul de angajati:\n");
  27. scanf("%d",&n);
  28. getchar();
  29. for(i=0;i<n;i++)
  30. {
  31. printf("Introduceti numele angajatului %d:\n",i);
  32. gets(&a[i].nume);
  33. printf("Introduceti varsta angajatului %d:\n",i);
  34. scanf("%d",&a[i].varsta);
  35. getchar();
  36. printf("Introduceti numarul de angajati ai firmei unde lucreaza persoana %d:\n",i);
  37. scanf("%d",&a[i].f[30].nr_angajati);
  38. getchar();
  39. printf("Introduceti localitatea firmei unde lucreaza angajatul %d:\n",i);
  40. gets(&a[i].f[30].localitate);
  41. printf("Introduceti numele firmei %d:\n",i);
  42. gets(&a[i].f[30].nume_firma);
  43. }
  44. for(i=0;i<n;i++)
  45. {
  46. 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);
  47. }
  48.  
  49. //afisare angajati care lucreaza la firme din aceeasi localitate
  50.  
  51. int j;
  52.  
  53. for(i=0;i<n;i++)
  54. {
  55. for(j=i+1;j<n;j++)
  56. {
  57. if(strcmp(a[i].f[30].localitate,a[j].f[30].localitate)==0)
  58. {
  59. printf("%s %s\n",a[i].nume,a[i].f[30].nume_firma);
  60. }
  61. }
  62. }
  63.  
  64. //ordonare crescatoare in functie de numarul de angajati
  65.  
  66. int ok=0;
  67. struct angajat aux;
  68. while(ok==0)
  69. {
  70. ok=1;
  71. for(i=0;i<n;i++)
  72. {
  73. if(a[i].f[30].nr_angajati>a[i+1].f[30].nr_angajati)
  74. {
  75. aux=a[i];
  76. a[i]=a[i+1];
  77. a[i+1]=aux;
  78. ok=0;
  79. }
  80. }
  81. }
  82. for(i=0;i<n;i++)
  83. {
  84. 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);
  85. }
  86.  
  87. //aflarea angajatilor care au varsta mai mica decat medie tuturor angajatilor
  88.  
  89. int suma=0;
  90. float medie;
  91.  
  92. for(i=0;i<n;i++)
  93. {
  94. suma=suma+a[i].varsta;
  95. }
  96. medie=suma/n;
  97.  
  98. for(i=0;i<n;i++)
  99. {
  100. if(a[i].varsta<medie)
  101. {
  102. printf("%s\n",a[i].nume);
  103. }
  104. }
  105.  
  106. //determinare firma cu numarul maxim de angajati
  107.  
  108. struct angajat r,max;
  109. for(i=0;i<n;i++)
  110. {
  111. for(j=i+1;j<n;j++)
  112. {
  113. if(a[i].f[30].nr_angajati>a[j].f[30].nr_angajati)
  114. {
  115. r=a[i];
  116. }
  117. }
  118. if(r.f[30].nr_angajati>max.f[30].nr_angajati)
  119. {
  120. max=r;
  121. }
  122. }
  123. printf("Firma cu cel mai mare numar de angajati este %s",max.f[30].nume_firma);
  124. return 0;
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement