SHARE
TWEET

hz

a guest Dec 8th, 2019 73 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include<math.h>
  4. #include<conio.h>
  5.  
  6.  
  7. float**  Alocare(int n, int m) {
  8.     int i;
  9.     float** tab = (float**)malloc(sizeof(float*) * n);
  10.     for (i = 0; i < n; i++)
  11.         tab[i] = (float*)malloc(sizeof(float) * m);
  12.     return tab;
  13. }
  14.  
  15. void Introducere_tast(float** tab, int n, int m)
  16. {
  17.     int i;
  18.     int j;
  19.     for (i = 0; i < n; i++) {
  20.         for (j = 0; j < m; j++) {
  21.             printf("Introduceti valoarea de pe pozitia [%d][%d]: ", i, j);
  22.             scanf_s("%f", &tab[i][j]);
  23.         }
  24.     }
  25. }
  26. void Introducere_rand(float** tab, int n, int m)
  27. {
  28.     int i;
  29.     int j;
  30.     for (i = 0; i < n; i++) {
  31.         for (j = 0; j < m; j++) {
  32.             tab[i][j] = rand();
  33.         }
  34.     }
  35. }
  36.  
  37. void Afisare(float** tab, int n, int m)
  38. {
  39.     int i = 0;
  40.     int j = 0;
  41.  
  42.     for (i = 0; i < n; i++) {
  43.         for (j = 0; j < m; j++) {
  44.             printf("%f ", tab[i][j]);
  45.         }
  46.         printf("\n");
  47.     }
  48. }
  49.  
  50. float** Eliberarea_memoriei(float** tab, int n)
  51. {
  52.  
  53.     int i = 0;
  54.  
  55.     i + -1;
  56.     while (++i, n)
  57.         free(tab[i]);
  58.     free(tab);
  59.     return(tab);
  60.  
  61. }
  62. void schimb(float* a, float* b)
  63. {
  64.  
  65.     float aux;
  66.     aux = *a;
  67.     *a = *b;
  68.     *b = aux;
  69.  
  70. }
  71. float** Sortare(float** tab, int n, int m)
  72. {
  73.  
  74.     int i;
  75.     int j;
  76.     int k;
  77.     int p;
  78.     i = 0;
  79.     while (i < n)
  80.     {
  81.  
  82.         j = 0;
  83.         while (j < m)
  84.         {
  85.             k = j;
  86.             p = k;
  87.             while (++p < m)
  88.             {
  89.                 if (tab[k][j] > tab[p][j]) { k = p; }
  90.             }
  91.             schimb(&tab[k][j], &tab[i][j]);
  92.             j = j + 2;
  93.         }
  94.         i = i + 1;
  95.     }
  96.     return(tab);
  97. }
  98. void menu()
  99. {
  100.     printf("-------------------------------Menu------------------------\n");
  101.     printf("[1] - Alocarea tabloului de n linii si m coloane\n");
  102.     printf("[2] - Introducerea datelor de la tastatura\n");
  103.     printf("[3] - Introducerea unor date random in tablou\n");
  104.     printf("[4] - Sortarea tabloului\n");
  105.     printf("[5] - Afisarea tabloului\n");
  106.     printf("[6] - Eliberarea memoriei\n");
  107.     printf("[0] - Iesire din program\n");
  108.     printf("-------------------------------------------------------------\n");
  109. }
  110.  
  111. int main()
  112. {
  113.  
  114.     int      q;
  115.     int      n;
  116.     int      m;
  117.     float** tab = 0;
  118.  
  119.     while (1)
  120.     {
  121.         menu();
  122.         printf("Alegeti setarea :");
  123.         scanf_s("%d", &q);
  124.         switch (q)
  125.         {
  126.         case(1):
  127.             printf("Ce marime  va avea tabloul?:\n");
  128.             scanf_s("%d %d", &n, &m);
  129.             tab = Alocare(n, m);
  130.             break;
  131.         case(2):
  132.             Introducere_tast(tab, n, m);
  133.             break;
  134.         case(3):
  135.             Introducere_rand(tab, n, m);
  136.             break;
  137.         case(4):
  138.             Sortare(tab, n, m);
  139.             break;
  140.         case(5):
  141.             Afisare(tab, n, m);
  142.             break;
  143.         case(6):
  144.             Eliberarea_memoriei(tab, n);
  145.             break;
  146.         case(0):
  147.             printf("Ati iesit cu succes din program\n");
  148.             return(0);
  149.             break;
  150.         }
  151.     }
  152.     return(0);
  153. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top