#include #include int vzestupne(int a, int b) { return (a < b); } void setrid1(int p[], int Max, int (*p_f)()) { int Mez, Nejmensi, I; for (Mez = 0; Mez < Max - 1; Mez++) { Nejmensi = Mez; for (I = Mez + 1; I <= Max - 1; I++) { /* if (p[I] < p[Nejmensi]) { */ if (p_f(p[I], p[Nejmensi])) { Nejmensi = I; } } I = p[Nejmensi]; p[Nejmensi] = p[Mez]; p[Mez] = I; } } void setrid2(int *p, int Max) { int *p_pom1 = p, *p_pom2 = p, *p_Nejmensi, nejmensi; for (p_pom1 = p; p_pom1 < p + Max - 1; p_pom1++) { p_Nejmensi = p_pom1; for (p_pom2 = p_pom1 + 1; p_pom2 <= p + Max - 1; p_pom2++) { if (*p_pom2 < *p_Nejmensi) { p_Nejmensi = p_pom2; } } nejmensi = *p_Nejmensi; *p_Nejmensi = *p_pom1; *p_pom1 = nejmensi; } } int main() { char *vstup, *vystup; int *p_i; int delka = 0; FILE *fw, *fr; if ((vstup = (char *) malloc(20 * sizeof(char))) == NULL) { printf("M lo pamØti!\n"); exit(1); } if ((vystup = (char *) malloc(20 * sizeof(char))) == NULL) { printf("M lo pamØti!\n"); exit(1); } if ((p_i = (int *) malloc(sizeof(int))) == NULL) { printf("M lo pamØti!\n"); exit(1); } printf("Zadej jm‚no vstupn¡ho souboru: "); scanf("%s", vstup); printf("Zadej jm‚no vìstupn¡ho souboru: "); scanf("%s", vystup); fr = fopen(vstup, "r"); while (fscanf(fr, "%d", p_i) != EOF) delka++; fclose(fr); free((void *) p_i); if ((p_i = (int *) malloc(delka * sizeof(int))) == NULL) { printf("M lo pamØti!\n"); exit(1); } fr = fopen(vstup, "r"); delka = 0; while (fscanf(fr, "%d", p_i + delka) != EOF) delka++; fclose(fr); setrid1(p_i, delka, vzestupne); fw = fopen(vystup, "w"); for (delka-- ; 0 <= delka; delka--) fprintf(fw, "%d\n", *(p_i + delka)); fclose(fw); return 0; }