ТЗ

Run Settings
LanguageC
Language Version
Run Command
#include <stdio.h> typedef struct Array { int* data; int length; int capacity; } Array; void print_array(Array arr, const char* msg) { printf(msg); for (int i = 0; i < arr.length; i++) { printf("%d ", arr.data[i]); } printf("\n"); } int random(int min, int max) { return rand() % max + min; } void swap(int* left, int* right) { int tmp = *left; *left = *right; *right = tmp; } Array mk_random_array() { Array result; result.capacity = random(1, 5); result.length = result.capacity; result.data = (int*)malloc(sizeof(int) * result.capacity); for (int i = 0; i < result.capacity; i++) { result.data[i] = random(0, 9); } return result; } Array array_concat(Array left, Array right) { Array result; result.capacity = left.length + right.length; result.length = result.capacity; result.data = (int*)malloc(sizeof(int) * result.capacity); memcpy(result.data, left.data, sizeof(int) * left.length); memcpy(result.data + left.length, right.data, sizeof(int) * right.length); return result; } void array_sort(Array arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (arr.data[j] > arr.data[j + 1]) { swap(&arr.data[j], &arr.data[j + 1]); } } } } Array array_distinct(Array arr) { for (int j = 0; j < arr.length - 1;) { if (arr.data[j] == arr.data[j+1]) { for(int i = j+1; i < arr.length; ++i) { arr.data[i-1] = arr.data[i]; } arr.length--; } else ++j; } return arr; } int main() { srand(time(NULL)); Array a = mk_random_array(); print_array(a, "Первый массив:\t"); Array b = mk_random_array(); print_array(b, "Второй массив:\t"); Array c = array_concat(a, b); print_array(c, "Результат объединения:\t"); array_sort(c); print_array(c, "После сортировки:\t"); c = array_distinct(c); print_array(c, "Убраны дубликаты:\t"); free(a.data); free(b.data); free(c.data); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines