Patey

Untitled

Jan 14th, 2021
470
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3. #include<string.h>
  4.  
  5. typedef struct centrale {
  6.     int pret, suprafata;
  7.     char *producator;
  8. }b;
  9.  
  10. void adaugare_element(b *a, int *n)
  11. {
  12.     char aux[20];
  13.     (*n)++;
  14.     printf("Producator: ");
  15.     scanf("%s", aux);
  16.     (a + *n)->producator = (char*)malloc(strlen(aux) + 1);
  17.     strcpy((a + *n)->producator, aux);
  18.     printf("Suprafata: ");
  19.     scanf("%d", &((a + *n)->suprafata));
  20.     printf("Pret: ");
  21.     scanf("%d", &((a + *n)->pret));
  22. }
  23.  
  24. void afisare(b *a, int *n)
  25. {
  26.     b *aux;
  27.     int i;
  28.     printf("\n");
  29.     for (i = 0; i < *n; i++)
  30.     {
  31.         *(a + i) = *(a + i+1);
  32.     }
  33.     (*n)--;
  34.     for (i = 0; i <= *n; i++)
  35.     {
  36.         printf("Producator: %s\nSuprafata: %d\nPret: %d\n\n", (a + i)->producator, (a + i)->suprafata, (a + i)->pret);
  37.     }
  38. }
  39.  
  40. void afisare_biti(b *a, int n)
  41. {
  42.     int i,j, nr = 0;
  43.     for (i = 0; i <= n; i++)
  44.     {
  45.         for (j = 7; j >= 0; j--)
  46.         {
  47.             if ((a + i)->suprafata >> j & 1)
  48.             {
  49.                 printf("1");
  50.                 nr++;
  51.             }
  52.             else
  53.                 printf("0");
  54.         }
  55.         printf("\n");
  56.     }
  57.     printf("Numarul de biti 1 este: %d\n", nr);
  58. }
  59.  
  60. int main()
  61. {
  62.     b a[20];
  63.     int n = -1;
  64.     enum{iesire,adaugare,stergere,biti}opt;
  65.     do {
  66.         printf("0. Iesire\n");
  67.         printf("1. Adaugare\n");
  68.         printf("2. Stergere\n");
  69.         printf("3. Biti\n");
  70.         printf("opt= ");
  71.         scanf("%d", &opt);
  72.         switch (opt)
  73.         {
  74.         case iesire:exit(0);
  75.             break;
  76.         case adaugare:adaugare_element(a, &n);
  77.             break;
  78.         case stergere:afisare(a, &n);
  79.             break;
  80.         case biti:afisare_biti(a, n);
  81.             break;
  82.         default:printf("Eroare!\n");
  83.             break;
  84.         }
  85.     } while (1);
  86. }
RAW Paste Data