All pastes #837276 Raw Edit

Unnamed

public c v1 · immutable
#837276 ·published 2007-12-29 14:23 UTC
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;}