Pagini recente » Cod sursa (job #155134) | Cod sursa (job #3264744) | Cod sursa (job #2193753) | Cod sursa (job #1527426) | Cod sursa (job #3244666)
#include <stdio.h>
enum { NMAX = 8 };
char folosit[NMAX], nr[NMAX];
FILE *fout;
void afisare(int n) { // afiseaza vectorul nr
int i;
for (i = 0; i < n; i++) {
fprintf(fout, "%d ", nr[i]);
}
fputc('\n', fout);
}
// genereaza permutarile de la pozitia poz pana la n - 1, apoi le afiseaza
void genperm(int poz, int n) {
if (poz == n) {
afisare(n);
return;
}
int i;
for (i = 1; i <= n; i++) {
if (!folosit[i - 1]) {
folosit[i - 1] = 1;
nr[poz] = i;
genperm(poz + 1, n);
folosit[i - 1] = 0;
}
}
}
int main() {
FILE *fin;
int n;
fin = fopen("permutari.in", "r");
fscanf(fin, "%d", &n);
fclose(fin);
fout = fopen("permutari.out", "w");
genperm(0, n);
fclose(fout);
return 0;
}