Pagini recente » Cod sursa (job #2839515) | Cod sursa (job #1500311) | Cod sursa (job #1689090) | Cod sursa (job #2785715) | Cod sursa (job #1992535)
#include <stdio.h>
#include <stdlib.h>
void printare(FILE * fisi2,int p,int * k){
int i;
for (i=0;i<p;i++){
fprintf(fisi2,"%d ",k[i]);
}
fprintf(fisi2,"\n");
}
int validare(int p,int * permutare){
int i,j;
for (i=0; i < p; i++)
for (j=0;j<p;j++)
if ((permutare[i]==permutare[j]) && (i!=j))
return -1;
return 0;
}
void genpermutari(int p,int * permutare,int i,FILE * fisi2){
int x;
if (i==p){
x=validare(p,permutare);
if (x==0)
printare(fisi2,p,permutare);
return;
}
int j;
for (j=0;j<p;j++){
permutare[i]=j+1;
genpermutari(p,permutare,i+1,fisi2);
}
}
int main(){
int p;
FILE * fisi;
FILE * fisi2;
fisi=fopen("permutari.in","r");
fisi2=fopen("permutari.out","w");
fscanf(fisi,"%d",&p);
int * permutare=(int *)malloc(p*sizeof(int));
genpermutari(p,permutare,0,fisi2);
fclose(fisi);
fclose(fisi2);