Advertisement
Guest User

hz

a guest
Dec 8th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.12 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement