Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdlib.h>
- #include<stdio.h>
- #include<string.h>
- typedef struct centrale {
- int pret, suprafata;
- char *producator;
- }b;
- void adaugare_element(b *a, int *n)
- {
- char aux[20];
- (*n)++;
- printf("Producator: ");
- scanf("%s", aux);
- (a + *n)->producator = (char*)malloc(strlen(aux) + 1);
- strcpy((a + *n)->producator, aux);
- printf("Suprafata: ");
- scanf("%d", &((a + *n)->suprafata));
- printf("Pret: ");
- scanf("%d", &((a + *n)->pret));
- }
- void afisare(b *a, int *n)
- {
- b *aux;
- int i;
- printf("\n");
- for (i = 0; i < *n; i++)
- {
- *(a + i) = *(a + i+1);
- }
- (*n)--;
- for (i = 0; i <= *n; i++)
- {
- printf("Producator: %s\nSuprafata: %d\nPret: %d\n\n", (a + i)->producator, (a + i)->suprafata, (a + i)->pret);
- }
- }
- void afisare_biti(b *a, int n)
- {
- int i,j, nr = 0;
- for (i = 0; i <= n; i++)
- {
- for (j = 7; j >= 0; j--)
- {
- if ((a + i)->suprafata >> j & 1)
- {
- printf("1");
- nr++;
- }
- else
- printf("0");
- }
- printf("\n");
- }
- printf("Numarul de biti 1 este: %d\n", nr);
- }
- int main()
- {
- b a[20];
- int n = -1;
- enum{iesire,adaugare,stergere,biti}opt;
- do {
- printf("0. Iesire\n");
- printf("1. Adaugare\n");
- printf("2. Stergere\n");
- printf("3. Biti\n");
- printf("opt= ");
- scanf("%d", &opt);
- switch (opt)
- {
- case iesire:exit(0);
- break;
- case adaugare:adaugare_element(a, &n);
- break;
- case stergere:afisare(a, &n);
- break;
- case biti:afisare_biti(a, n);
- break;
- default:printf("Eroare!\n");
- break;
- }
- } while (1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement