/** * Kopiuje wejście na wyjście, permutując kolumny w sposób określony * argumentami programu. */ int main(int argc, char *argv[]) { int k, n, a; int *p = NULL; int *q = NULL; bool odwracanie = false; char *s = NULL; int rozmiar; n = argc - 1; k = 1; if (argc > 1 && strcmp(argv[1], ARG_ODWRACANIE) == 0) { odwracanie = true; --n; ++k; } rozmiar = (n > 0) ? n : 1; if ((p = malloc(rozmiar * sizeof *p)) == NULL) { blad(BRAK_MIEJSCA); } if ((a = wpisz_permutacje(argv + k, p, n)) != 0) { free(p); blad(a); } if (odwracanie) { if ((q = malloc(rozmiar * sizeof *p)) == NULL) { free(p); blad(BRAK_MIEJSCA); } odwrotna(p, n, q); free(p); p = q; } if ((s = malloc(rozmiar * sizeof *s)) == NULL) { free(p); blad(BRAK_MIEJSCA); } permutuj(p, n, s); free(s); free(p); return EXIT_SUCCESS; }
int main() { int n; scanf("%d", &n); permutuj(n); return 0; }