Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.64 KB | None | 0 0
  1. ===============array.c====================
  2.  
  3. #define _CRT_SECURE_NO_WARNINGS
  4. #include "array.h"
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <time.h>
  8.  
  9. void makeArr(int** arr, int n) {
  10. *arr = (int*)malloc(n * sizeof(int));
  11. }
  12.  
  13. void loadArrF(const char* file, int** arr, int n) {
  14. FILE* f;
  15. f = fopen(file, "rt");
  16.  
  17. if (!f) {
  18. printf("Nem megnyithato");
  19. }
  20.  
  21. int* seged;
  22. seged = (int*)malloc(n * sizeof(int));
  23. for (int i = 0; i < n; i++) {
  24. fscanf(f, "%d", &seged[i]);
  25. }
  26.  
  27. *arr = seged;
  28.  
  29. fclose(f);
  30. }
  31.  
  32. void loadArrR(int* arr, int n, int l1, int l2) {
  33. srand(time(NULL));
  34.  
  35. for (int i = 0; i < n; i++) {
  36. arr[i] = l1 + rand() % (l2 - l1) + 1;
  37. }
  38. }
  39.  
  40. void printArr(int* arr, int n) {
  41. for (int i = 0; i < n; i++) {
  42. printf("%d ", arr[i]);
  43. }
  44. }
  45.  
  46. void printArrF(const char* file, int* arr, int n) {
  47. FILE* f;
  48. f = fopen(file, "wt");
  49.  
  50. if (!f) {
  51. printf("Nem megnyithato");
  52. }
  53.  
  54. for (int i = 0; i < n; i++) {
  55. fprintf(f, "%d ", arr[i]);
  56. }
  57.  
  58. fclose(f);
  59. }
  60.  
  61. void sortArr(int* arr, int n) {
  62. int i, j;
  63. for (i = 0; i < n - 1; i++) {
  64. for (j = 0; j < n - i - 1; j++) {
  65. if (arr[j] > arr[j + 1]) {
  66. swap(&arr[j], &arr[j + 1]);
  67. }
  68. }
  69. }
  70. }
  71.  
  72. void swap(int* xp, int* yp) {
  73. int temp = *xp;
  74. *xp = *yp;
  75. *yp = temp;
  76. }
  77.  
  78. int searchArr(int* arr, int n, int x) {
  79. int l = 0;
  80. int r = n;
  81.  
  82. while (l <= r) {
  83. int m = l + (r - l) / 2;
  84.  
  85. if (arr[m] == x)
  86. return m;
  87.  
  88. if (arr[m] < x)
  89. l = m + 1;
  90.  
  91. else
  92. r = m - 1;
  93. }
  94.  
  95. return -1;
  96. }
  97.  
  98. void deleteArr(int** arr, int* delArr, int n, int m) {
  99. int* seged = (int*)malloc(n * sizeof(int)),count=0;
  100.  
  101. for (int i = 0; i < n; i++) {
  102. for (int j = 0; j < m; j++) {
  103. if (arr[i] != delArr[j]) {
  104. seged[count] = arr[i];
  105. }
  106. else {
  107. count--;
  108. break;
  109. }
  110. }
  111. count++;
  112. }
  113. printf("\n%d\n", count);
  114. seged = (int*)realloc(seged, count * sizeof(int));
  115. //printArr(seged, count);
  116. arr = (int*)realloc(arr, count * sizeof(int));
  117. *arr = seged; //itt bajlodik az atadasnal
  118. }
  119.  
  120. int minArr(int* arr, int n) {
  121. int min = INT_MAX;
  122. for (int i = 0; i < n; i++) {
  123. if (arr[i] < min) {
  124. min = arr[i];
  125. }
  126. }
  127.  
  128. return min;
  129. }
  130.  
  131. int maxArr(int* arr, int n) {
  132. int max = INT_MIN;
  133. for (int i = 0; i < n; i++) {
  134. if (arr[i] > max) {
  135. max = arr[i];
  136. }
  137. }
  138.  
  139. return max;
  140. }
  141.  
  142. void copyArr(int** arr, int n, int* newArr, int m) {
  143. int* seged = (int*)malloc((n + m) * sizeof(int));
  144. for (int i = 0; i < n; i++) {
  145. seged[i] = arr[i];
  146. }
  147. int count = 0;
  148. for (int i = n; i < n + m; i++) {
  149. seged[i] = newArr[count];
  150. count++;
  151. }
  152.  
  153. //printArr(seged, n + m);
  154.  
  155. *arr = (int*)malloc((n + m) * sizeof(int));
  156. *arr = seged; //Itt is bajlodik az atadasnal
  157. }
  158.  
  159. ===============array.h=====================
  160.  
  161. #ifndef FUNCTION_DEFINE ARRAY
  162. #define FUNCTION_DEFINE ARRAY
  163.  
  164. void makeArr(int**, int);
  165. void loadArrF(const char*, int**, int);
  166. void loadArrR(int*, int, int, int);
  167. void printArr(int*, int);
  168. void printArrF(const char*, int*, int);
  169. void sortArr(int*, int);
  170. int searchArr(int*, int, int);
  171. void deleteArr(int**, int*, int,int);
  172. int minArr(int*, int);
  173. int maxArr(int*, int);
  174. void copyArr(int*, int, int*, int);
  175. void swap(int* xp, int* yp);
  176.  
  177. #endif
  178.  
  179. ==============main.c=========================
  180.  
  181. #include "array.h"
  182.  
  183. int main() {
  184. int* arr;
  185. int n = 10;
  186. makeArr(&arr, n);
  187. loadArrR(arr, n, 10, 25);
  188.  
  189. sortArr(arr, n);
  190. printArr(arr, n);
  191. printf("\n%d", searchArr(arr, n, 12));
  192. printf("\n\n");
  193.  
  194. int m = 3;
  195. int* newArr;
  196. makeArr(&newArr, m);
  197. newArr = (int[3]){ 13, 14, 15 };
  198.  
  199.  
  200. //deleteArr(arr, newArr, n, m);
  201. //printArr(arr, n);
  202.  
  203. copyArr(arr, n, newArr, m);
  204. printArr(arr, n + m);
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement