Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- #include <stdbool.h>
- #include <limits.h>
- struct EQW {
- int key;
- int count;
- bool inA, inB, inC,is_incializated;
- };
- typedef struct EQW eqw;
- eqw *D;
- int sizeD;
- int min(int A, int B) {
- if (A > B)
- return B;
- return A;
- }
- int max(int A, int B) {
- if (A < B)
- return B;
- return A;
- }
- void set_zero(int *array, int size) {
- for (int i = 0; i < size; i++) {
- array[i] = 0;
- }
- }
- void ran(int *array, int size) {
- for (int i = 0; i < size; i++)
- array[i] = rand() % 7 + 12;
- }
- void out(int *array, int size) {
- for (int i = 0; i < size; i++)
- printf("%i", array[i]);
- }
- int serch_min(int *array, int size) {
- int minv = INT_MIN;
- for (int i = 0; i < size; i++)
- minv = min(array[i], minv);
- return minv;
- };
- void serch_equals(int *arrayA, int sizeA, int *arrayB, int sizeB, int *arrayC, int sizeC) {
- sizeD = max(max(sizeA, sizeB), sizeC);
- D = (eqw *) malloc(sizeof(eqw) * (sizeD+1));
- for (int i = 0; i <= sizeD; i++) {
- D[i].key = 0;
- D[i].count = 0;
- D[i].inA = false;
- D[i].inB = false;
- D[i].inC = false;
- D[i].is_incializated=false;
- }
- for (int i = 0; i < sizeA; i++) {
- for (int j = 0; j < sizeD; j++) {
- if (D[j].key == arrayA[i]&&D[i].is_incializated) {
- if(!D[j].inA)
- break;
- D[j].count++;
- D[j].inA = true;
- break;
- }
- if(!D[j].is_incializated){
- D[j].is_incializated=true;
- D[j].key=arrayA[i];
- D[j].count++;
- D[j].inA=true;
- break;
- }
- }
- }
- for (int i = 0; i < sizeB; i++) {
- for (int j = 0; j < sizeD; j++) {
- if (D[j].key == arrayB[i]&&D[i].is_incializated) {
- if(!D[j].inB)
- break;
- D[j].count++;
- D[j].inB = true;
- break;
- }
- if(!D[j].is_incializated){
- D[j].is_incializated=true;
- D[j].key=arrayB[i];
- D[j].count++;
- D[j].inB=true;
- break;
- }
- }
- }
- for (int i = 0; i < sizeC; i++) {
- for (int j = 0; j < sizeD; j++) {
- if (D[j].key == arrayC[i]&&D[i].is_incializated) {
- if(!D[j].inC)
- break;
- D[j].count++;
- D[j].inC = true;
- break;
- }
- if(!D[j].is_incializated){
- D[j].is_incializated=true;
- D[j].key=arrayC[i];
- D[j].count++;
- D[j].inC=true;
- break;
- }
- }
- }
- }
- void out_equals(){
- for(int i=0;i<sizeD;i++){
- printf("%d - %d raz",D[i].key,D[i].count);
- }
- }
- void write(int *array,int size){
- FILE *File = fopen("File.txt", "w");
- fprintf(File,"%d ",size);
- for(int i=0;i<size;i++){
- fprintf(File,"%d ",array[i]);
- }
- fclose(File);
- }
- void read(int *array){
- int size;
- FILE *File = fopen("File.txt", "r");
- fscanf(File,"%d ",&size);
- for(int i=0;i<size;i++){
- fscanf(File,"%d ",&array[i]);
- }
- fclose(File);
- }
- void delete(int* arrayA,int sizeA,int from,int to){
- int * first=(int*)malloc(sizeof(int)*(from-1));
- int * second=(int*)malloc(sizeof(int)*(sizeA-to));
- for(int i=0;i<from-1;i++){
- first[i]=arrayA[i];
- }
- for(int i=to;i<sizeA;i++){
- second[i-to]=arrayA[i];
- }
- arrayA=(int*)malloc(sizeof(int)*(from-1+sizeA-to));
- for(int i=0;i<from-1;i++){
- arrayA[i]=first[i];
- }
- for(int i=from;i<(from-1+sizeA-to);i++){
- arrayA[i]=second[i-from];
- }
- }
- int* incert(int *first,int sizefirst,int *second,int sizesecond,int to){
- int* result=(int*)malloc(sizeof(int)*(sizefirst+sizesecond));
- for(int i=0;i<to;i++){
- result[i]=first[i];
- }
- for(int i=0;i<sizesecond;i++){
- result[i+to]=second[i];
- }
- for(int i=to;i<sizefirst;i++){
- result[sizesecond+i]=first[to+i];
- }
- return result;
- }
- void some_shit(int *array,int size){
- int tmp;
- for(int i=0;i<size/2;i++){
- tmp=array[i];
- array[i]=array[size-i];
- array[size-i]=tmp;
- }
- }
- int main(int argc, char *argv[]) {
- int *A = (int *) malloc(sizeof(int) * 8);
- int *B = (int *) malloc(sizeof(int) * 7);
- int *C = (int *) malloc(sizeof(int) * 6);
- srand((unsigned int) time(0));
- }
Advertisement
Add Comment
Please, Sign In to add comment