Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/04/2012, 13:02
ginny_1685
 
Fecha de Ingreso: abril-2012
Mensajes: 5
Antigüedad: 12 años, 1 mes
Puntos: 0
codigo para combinaciones

hola a todos!!

quisiera pedirles su ayuda con varios codigos que ya tenia listos pero que el maestro me ha solicitado cambios de ultimo momento y no tengo ni idea de como hacerlos :S
les agradeceria mucho su compasion ya que si no los entrego reprobare.

miren elprimer codigo incialmente solo combinaba las letras hxc, pero ahora el maestro quiere que combine cualesquier 3 letras que introduzca el usuario como una cadena, y ya no se comocambiarlo... creen que tenga solucion?

les dejo mi codigo

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


/*
se formaran palabras empezando con 1 c las mas h's que se puedan y 1 x
de ahi se iran "donando" h's para que haya mas x's, hasta que ya se hayan
"donado" todas las x's posibles, entonces se agrega una c a las palabras y
ahora nuestro numero máximo de h's cambia y se vuelve a proceder como antes
hasta llegar donde hay el maximo numero de c's y solo 1 h y 1 x
*/

int main()
{
int tamanio;
int haches;
int ces;
int equises;
int i;
int j;
int k;
int iteraciones;
iteraciones = 0; //Contador de palabras
printf("Inserta el tamaño de la cadena: ");
scanf("%d",&tamanio);
if (tamanio < 3){
printf("\nLa cadena tiene que ser de al menos 3 caracteres");
printf("\npresione cualquier tecla para continuar");
getch();
return 0;
}
ces = 1;
haches = tamanio - 2;
equises = 1;
printf("la cadena es de tamaño %d, empezando con %d c's, %d h's, %d x's", tamanio, ces, haches, equises);
getch();
printf("\n");
for (ces;ces < tamanio - 1; ces++){ //"donando c's"
equises = 1;
haches = tamanio - equises - ces;
do{
for (i = 0; i < ces; i++){ //Se imprime el numero de c's correspondiente
printf ("c");
}
for(j=0; j < haches; j++){ //Se imprime el numero de h's correspondiente
printf ("h");
}
for(k = 0; k<equises ;k++){ //Se imprime el numero de x's correspondiente
printf("x");
};
equises++; //donando h's
haches = tamanio - equises - ces; //calculando el numero maximo de h's
printf("\n");
iteraciones++;
}
while (haches > 0);
}
printf("\nel numero de palabras es %d\npresione cualquier tecla para continuar",iteraciones);
getch();
}

gracias de antemano por leer :P