Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ===============array.c====================
- #define _CRT_SECURE_NO_WARNINGS
- #include "array.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- void makeArr(int** arr, int n) {
- *arr = (int*)malloc(n * sizeof(int));
- }
- void loadArrF(const char* file, int** arr, int n) {
- FILE* f;
- f = fopen(file, "rt");
- if (!f) {
- printf("Nem megnyithato");
- }
- int* seged;
- seged = (int*)malloc(n * sizeof(int));
- for (int i = 0; i < n; i++) {
- fscanf(f, "%d", &seged[i]);
- }
- *arr = seged;
- fclose(f);
- }
- void loadArrR(int* arr, int n, int l1, int l2) {
- srand(time(NULL));
- for (int i = 0; i < n; i++) {
- arr[i] = l1 + rand() % (l2 - l1) + 1;
- }
- }
- void printArr(int* arr, int n) {
- for (int i = 0; i < n; i++) {
- printf("%d ", arr[i]);
- }
- }
- void printArrF(const char* file, int* arr, int n) {
- FILE* f;
- f = fopen(file, "wt");
- if (!f) {
- printf("Nem megnyithato");
- }
- for (int i = 0; i < n; i++) {
- fprintf(f, "%d ", arr[i]);
- }
- fclose(f);
- }
- void sortArr(int* arr, int n) {
- int i, j;
- for (i = 0; i < n - 1; i++) {
- for (j = 0; j < n - i - 1; j++) {
- if (arr[j] > arr[j + 1]) {
- swap(&arr[j], &arr[j + 1]);
- }
- }
- }
- }
- void swap(int* xp, int* yp) {
- int temp = *xp;
- *xp = *yp;
- *yp = temp;
- }
- int searchArr(int* arr, int n, int x) {
- int l = 0;
- int r = n;
- while (l <= r) {
- int m = l + (r - l) / 2;
- if (arr[m] == x)
- return m;
- if (arr[m] < x)
- l = m + 1;
- else
- r = m - 1;
- }
- return -1;
- }
- void deleteArr(int** arr, int* delArr, int n, int m) {
- int* seged = (int*)malloc(n * sizeof(int)),count=0;
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- if (arr[i] != delArr[j]) {
- seged[count] = arr[i];
- }
- else {
- count--;
- break;
- }
- }
- count++;
- }
- printf("\n%d\n", count);
- seged = (int*)realloc(seged, count * sizeof(int));
- //printArr(seged, count);
- arr = (int*)realloc(arr, count * sizeof(int));
- *arr = seged; //itt bajlodik az atadasnal
- }
- int minArr(int* arr, int n) {
- int min = INT_MAX;
- for (int i = 0; i < n; i++) {
- if (arr[i] < min) {
- min = arr[i];
- }
- }
- return min;
- }
- int maxArr(int* arr, int n) {
- int max = INT_MIN;
- for (int i = 0; i < n; i++) {
- if (arr[i] > max) {
- max = arr[i];
- }
- }
- return max;
- }
- void copyArr(int** arr, int n, int* newArr, int m) {
- int* seged = (int*)malloc((n + m) * sizeof(int));
- for (int i = 0; i < n; i++) {
- seged[i] = arr[i];
- }
- int count = 0;
- for (int i = n; i < n + m; i++) {
- seged[i] = newArr[count];
- count++;
- }
- //printArr(seged, n + m);
- *arr = (int*)malloc((n + m) * sizeof(int));
- *arr = seged; //Itt is bajlodik az atadasnal
- }
- ===============array.h=====================
- #ifndef FUNCTION_DEFINE ARRAY
- #define FUNCTION_DEFINE ARRAY
- void makeArr(int**, int);
- void loadArrF(const char*, int**, int);
- void loadArrR(int*, int, int, int);
- void printArr(int*, int);
- void printArrF(const char*, int*, int);
- void sortArr(int*, int);
- int searchArr(int*, int, int);
- void deleteArr(int**, int*, int,int);
- int minArr(int*, int);
- int maxArr(int*, int);
- void copyArr(int*, int, int*, int);
- void swap(int* xp, int* yp);
- #endif
- ==============main.c=========================
- #include "array.h"
- int main() {
- int* arr;
- int n = 10;
- makeArr(&arr, n);
- loadArrR(arr, n, 10, 25);
- sortArr(arr, n);
- printArr(arr, n);
- printf("\n%d", searchArr(arr, n, 12));
- printf("\n\n");
- int m = 3;
- int* newArr;
- makeArr(&newArr, m);
- newArr = (int[3]){ 13, 14, 15 };
- //deleteArr(arr, newArr, n, m);
- //printArr(arr, n);
- copyArr(arr, n, newArr, m);
- printArr(arr, n + m);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement