Patey

Untitled

Jan 14th, 2021
431
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;
  7.     char producator[50], suprafata_de_incalzit[50];
  8. }b;
  9.  
  10. void adaugarere(b *a, int *n)
  11. {
  12.     int i;
  13.     (*n)++;
  14.     printf("Producator: ");
  15.     scanf("%s", (a + *n)->producator);
  16.     printf("Suprafata de incalzit: ");
  17.     scanf("%s", (a + *n)->suprafata_de_incalzit);
  18.     (a + *n)->pret = 0;
  19.     for (i = 0; i < strlen((a + *n)->producator); i++)
  20.         if ((a + *n)->producator[i] >= 'A' && (a + *n)->producator[i] <= 'Z')
  21.             (a + *n)->pret += (a + *n)->producator[i];
  22. }
  23.  
  24. void afisare(b*a, int *n)
  25. {
  26.     int i;
  27.     (*n)--;
  28.     for (i = 0; i <= *n; i++)
  29.         printf("Producator: %s\nSuprafata: %s\nPret: %d\n", (a + i)->producator, (a + i)->suprafata_de_incalzit, (a + i)->pret);
  30. }
  31.  
  32. void inversare(b*a, int n)
  33. {
  34.     int i,j;
  35.     char *aux;
  36.     for (i = 0; i <= n; i++)
  37.     {
  38.         aux = (char*)malloc(strlen((a + i)->suprafata_de_incalzit) + 1);
  39.         for (j = strlen((a + i)->suprafata_de_incalzit)-1; j >= 0; j--)
  40.             aux[strlen((a + i)->suprafata_de_incalzit)-j-1] = (a + i)->suprafata_de_incalzit[j];
  41.         aux[strlen((a + i)->suprafata_de_incalzit)] = '\0';
  42.         printf("%s\n", aux);
  43.         free(aux);
  44.     }
  45. }
  46.  
  47. int main()
  48. {
  49.     b a[20];
  50.     int n = -1;
  51.     enum { iesire, adaugare, stergere, invers }opt;
  52.     do {
  53.         printf("0. Iesire\n");
  54.         printf("1. Adaugarea unei noi centrale\n");
  55.         printf("2. Stergere ultima centrala\n");
  56.         printf("3. Afisare inversul suprafetei de incalzit\n");
  57.         printf("opt= ");
  58.         scanf("%d", &opt);
  59.         switch (opt)
  60.         {
  61.         case iesire:exit(0);
  62.             break;
  63.         case adaugare:adaugarere(a, &n);
  64.             break;
  65.         case stergere:afisare(a, &n);
  66.             break;
  67.         case invers:inversare(a, n);
  68.             break;
  69.         default:
  70.             break;
  71.         }
  72.     } while (1);
  73.     system("pause");
  74.     return 0;
  75. }
RAW Paste Data