rendered paste body/* domacak.c */#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_LENGHT 100void merge(int a[], int b[], int levy, int pravy, int poslPravy) { int poslLevy = pravy-1; int i = levy; int prvniLevy = levy; while (levy<=poslLevy && pravy<=poslPravy) b[i++] = (a[levy]<a[pravy])? a[levy++] :a [pravy++]; while (levy<=poslLevy) b[i++] = a[levy++]; while (pravy<=poslPravy) b[i++] = a[pravy++];}int min(int x, int y) { if (x<y) return x; else return y;}void mergeSort(int a[], int n) { int *pom = (int*)malloc(n*sizeof(int)), *odkud = a, *kam = pom; int delkaUseku = 1; int posl = n-1, i; while (delkaUseku<n) { int levy = 0; while (levy<=posl) { int pravy = levy+delkaUseku; merge(odkud, kam, levy, min(pravy, n), min(pravy+delkaUseku-1, posl)); levy = levy+2*delkaUseku; } delkaUseku = 2*delkaUseku; int *p = odkud; odkud = kam; kam = p; } if (odkud!=a) for (i=0; i<n; i++) a[i] = pom[i]; }int main(void) { char retezecX[MAX_LENGHT], retezecY[MAX_LENGHT], poleX[MAX_LENGHT], poleY[MAX_LENGHT]; char retezecXser[MAX_LENGHT], retezecYser[MAX_LENGHT], a[MAX_LENGHT]; int prvni, druhy; char jmenoSouboruX[] = "X.txt"; char jmenoSouboruY[] = "Y.txt"; char jmenoSouboruXser[] = "Xser.txt"; char jmenoSouboruYser[] = "Yser.txt"; /* čtení */ FILE *souborX; souborX = fopen(jmenoSouboruX, "r"); fscanf(souborX, "%s", retezecX); FILE *souborY; souborY = fopen(jmenoSouboruY, "r"); fscanf(souborY, "%s", retezecY); /* seřazeni */ prvni = strlen(retezecX); druhy = strlen(retezecY); mergeSort(retezecX, prvni); mergeSort(retezeY, druhy); /* výpis */ printf("Mnozina X: %s \n", retezecX); /* měl bych vypsat řetězec seřazenej tendle je neseřazenej*/ printf("Mnozina Y: %s \n", retezecY); fclose(souborX); fclose(souborY); fclose(souborXser); fclose(souborYser); system("PAUSE"); return 0;}