# include<stdio.h>
# include<conio.h>
# include<stdlib.h>
# include<dos.h>
# define NUMERO_MAXIMO_ELEMENTOS_VECTOR 100
# define en(x,x1,x2)((x)1)&&(x)<=(x2))
void rellenar_vector(int vect[]);
void escribir_vector(int vect[]);
void permutar(int v[],int m);
void intercambiar(int *p1,int *p2);
void main(void)
{
clrscr();
int vector[NUMERO_MAXIMO_ELEMENTOS_VECTOR];
puts("permutaciones");
rellenar_vector(vector);
printf("\nTotal de permutaciones y grupos de permutaciones");
permutar(vector,vector[0]);
textcolor(MONO);
printf("\n\n\tESTOS SON TODOS LOS GRUPOS DE PERMUTASIONES QUE SE PUEDEN REALIZAR");
textcolor(MONO);
textcolor(RED+BLINK);
gotoxy(10,16);cprintf("Pulzar cualquier tecla para finaliza");
getch();
}
/****************************************************************************/
void rellenar_vector(int vect[])
{
register int i;
do
{
printf("Introduzca el numero de elemntos de vector: ");
scanf("%d",&vect[0]);
fflush(stdin);
}while(! (vect[0],1,NUMERO_MAXIMO_ELEMENTOS_VECTOR));
printf("\nintroduzca los %d elementos a permutar: ",vect[0]);
for(i=1;i<=vect[0];i++)
scanf("%d",&vect[i]);
fflush(stdin);
putchar('\n');
getch();
}
/****************************************************************************/
void escribir_vector(int vect[])
{
clrscr();
static unsigned int numero_de_permutacion=0;
register int i;
++numero_de_permutacion;
gotoxy(15,9); printf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(15,10);printf("³Total de permutaciones ³ Grupos de Permutaciones ³");
gotoxy(15,11);printf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(15,12);printf("³ permutacion %2u ³ ³",numero_de_permutacion);
gotoxy(15,13);printf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(51,12);
for(i=1;i<=vect[0];i++)
printf("%d",vect[i]);
getch();
}
/****************************************************************************/
void permutar(int v[], int m)
{
register int i;
if(m>1)
for(i=1;i<=m;i++)
{
intercambiar(&v[i], &v[m]);
permutar(v,m-1);
intercambiar(&v[i],&v[m]);
}
else
escribir_vector(v);
}
/****************************************************************************/
void intercambiar(int *p1,int *p2)
{
int aux;
aux=*p1;
*p1=*p2;
*p2=aux;
}
Comentarios sobre la versión: Versión 1 (0)
No hay comentarios